getting dropdownlist / checklists values

9 posts, 0 answers
  1. Ratna
    Ratna avatar
    5 posts
    Member since:
    Sep 2015

    Posted 23 Sep 2015 Link to this post

    Hi!

    I've been on a trial version for this week.  My initial objectives are to have some regression scripts created to do the following tasks:

    1) verify list of values from dropdownlists on web portal pages

    2) verify list of values with checklists / checkboxes on web portal pages

    I'm working on a web portal app that have lots of dropdownlists with lots of values.  I need some assistance in getting each of the values from the dropdownlist and display it to confirm, then write into the logs or datasource and perform a comparison, returning pass/fail results.  I was able to do the following so far (in VB):

    1) get the total count of the dropdownlist

    Dim P_Count = Pages.MainPlaceholderDrpdwnPortFolioSelect.ChildNodes.Count.ToString()           
    Log.WriteLine ("Total number of Portfolios is " +P_Count)

    2) get the default selected value

    Log.WriteLine (Pages.MainPlaceholderDrpdwnPortFolioSelect.SelectedOption.Text.ToString())

    3) perform the comparison (only with innertex, which is pulls the whole text of combined values together)

     Dim PortfoliosRuntime = Pages.MainPlaceholderDrpdwnPortFolioSelect.InnerText 
     Dim PortfoliosList = Data("PortfoliosList").ToString() 'same as Data(0).ToString()

     If PortfoliosRuntime = PortfoliosList Then
            Log.WriteLine (PortfoliosRuntime)
            Log.Writeline ("Portfolios lists matched!")
     Else
           Throw New Exception("Portfolios lists didn't matched!")
     End If

     

    I need help in the following and getting it work:

    1) For-Next loop to loop through each value of the dropdownlist and confirmed in MessageBox or log

    Dim i
    For i=0 to P_Count-1
    Log.WriteLine ("Loop count = " + i.ToString())
    Next

    2) get MessageBox to work and display message box for each value

    Dim MsgBox As New NativeWindow()
    MsgBox.AssignHandle(ActiveBrowser.Window.Handle)
    MessageBox.Show(MsgBox, "This is a message!" 

    I appreciate it and thanks in advance for your assistance.

    Thanks,

    Stephen

  2. Cody
    Admin
    Cody avatar
    3360 posts

    Posted 25 Sep 2015 Link to this post

    Hello Stephen,

    Under the cover, a standard HTML drop down select looks like this:

    <select>
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>

    Since every item in the list is represented by an <option> tag, we can take advantage of that in code like this:

    Dim options As ReadOnlyCollection(Of HtmlOption) = Pages.MainPlaceholderDrpdwnPortFolioSelect.Options
    Log.WriteLine(options.Count.ToString())
     
    For Each [option] As HtmlOption In options
        Log.WriteLine([option].Text + [option].Value)
     
        MessageBox.Show([option].Text + [option].Value)
    Next



    Regards,
    Cody
    Telerik
     
    The New Release of Telerik Test Studio Is Here! Download, install,
    and send us your feedback!
  3. Ratna
    Ratna avatar
    5 posts
    Member since:
    Sep 2015

    Posted 28 Sep 2015 in reply to Cody Link to this post

    Hi Cody,

    I got  the following error messages in the Log:

    C:\Users\snguyen\Documents\Test Studio Projects\FirstSimpleTestonNexus\CSAM - Portfolios Lists (2).tstest.vb(66) : error BC30002: Type 'ReadOnlyCollection' is not defined. Dim options As ReadOnlyCollection(Of HtmlOption) = Pages.Virtus0.MainPlaceholderDrpdwnPortFolioSelect.Options

     and

    C:\Users\snguyen\Documents\Test Studio Projects\FirstSimpleTestonNexus\CSAM - Portfolios Lists (2).tstest.vb(74) : error BC30451: 'MessageBox' is not declared. It may be inaccessible due to its protection level. MessageBox.Show([option].Text + [option].Value)

     Please advised.

     

     

  4. Ratna
    Ratna avatar
    5 posts
    Member since:
    Sep 2015

    Posted 28 Sep 2015 in reply to Ratna Link to this post

     I'm able to get the values into log without the 'ReadOnlyCollection' included...

    Dim options = Pages.Virtus0.MainPlaceholderDrpdwnPortFolioSelect.Options

  5. Cody
    Admin
    Cody avatar
    3360 posts

    Posted 28 Sep 2015 Link to this post

    Hi,

    ReadOnlyCollection is defined in the namespace System.Collections.ObjectModel. You must add an:

    imports System.Collections.ObjectModel;

    MessageBox is defined in the assembly System.Windows.Forms. You must add a reference to this assembly along with an:

    imports System.Windows.Forms.

    Regards,
    Cody
    Telerik
     
    The New Release of Telerik Test Studio Is Here! Download, install,
    and send us your feedback!
  6. Ratna
    Ratna avatar
    5 posts
    Member since:
    Sep 2015

    Posted 28 Sep 2015 in reply to Cody Link to this post

    Hi Cody, 

    When I put these 2 lines in the Coded Step, I got the following errors in log:

    Imports System.Collections.ObjectModel
    Imports System.Windows.Forms 

    C:\Users\snguyen\Documents\Test Studio Projects\FirstSimpleTestonNexus\CSAM - Portfolios Lists - Working.tstest.vb: Line 59: (BC30035) Syntax error.C:\Users\snguyen\Documents\Test Studio Projects\FirstSimpleTestonNexus\CSAM - Portfolios Lists - Working.tstest.vb: Line 60: (BC30035) Syntax error.

    BTW, the Imports System.Windows.Forms don't exist because when do Imports System.Windows. it only display "Input" and "Markup" as options.

     

  7. Cody
    Admin
    Cody avatar
    3360 posts

    Posted 28 Sep 2015 Link to this post

    Hi,

    Did you add a reference to the assembly System.Windows.Forms.dll as I previously explained? This is required to be able to use MessageBox. You should find this assembly in the folder C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 as shown in the attached screen shot.

    Regards,
    Cody
    Telerik
     
    The New Release of Telerik Test Studio Is Here! Download, install,
    and send us your feedback!
  8. Ratna
    Ratna avatar
    5 posts
    Member since:
    Sep 2015

    Posted 28 Sep 2015 in reply to Cody Link to this post

    I saw the System.Windows.Form but didn't see the System.Collections.ObjectModel, is it located somewhere else?
  9. Cody
    Admin
    Cody avatar
    3360 posts

    Posted 28 Sep 2015 Link to this post

    Hello,

    Well sort of it is. It's integrated into the .NET framework core dll, mscorlib.dll. Just by having a reference to System.dll (which you get by default and cannot NOT have this) you should be able to use the statement:

    Imports System.Collections.ObjectModel

    Regards,
    Cody
    Telerik
     
    The New Release of Telerik Test Studio Is Here! Download, install,
    and send us your feedback!
Back to Top