【问题标题】:How to select an option from a dropdown menu via where it is in the list?如何通过列表中的位置从下拉菜单中选择一个选项?
【发布时间】:2016-02-14 01:10:19
【问题描述】:

在带有 selenium 的 python 中有没有一种方法可以通过计数来选择一个选项,而不是使用下拉菜单中的值或名称来选择一个选项?就像选择选项 1 和另一个示例选择选项 2。这是因为下拉菜单选项的值或文本可能会更改,因此为了确保选择了一个选项,我只想说选择第一个选项(不管是什么它是),另一个例子选择第五个选项等等。

下面是我使用 value 来选择一个选项的代码,如果将来 value 发生变化,这将是一个问题:

pax_one_bags = Select(driver.find_element_by_id("ctl00_MainContent_passengerList_PassengerGridView_ctl02_baggageOutDropDown"))
pax_one_bags.select_by_value("2")

pax_two_bags = Select(driver.find_element_by_id("ctl00_MainContent_passengerList_PassengerGridView_ctl03_baggageOutDropDown"))
pax_two_bags.select_by_value("5")

【问题讨论】:

    标签: python python-2.7 selenium selenium-webdriver


    【解决方案1】:

    是的,有select_by_index() method

    pax_one_bags = Select(driver.find_element_by_id("ctl00_MainContent_passengerList_PassengerGridView_ctl02_baggageOutDropDown"))
    pax_one_bags.select_by_index(1)
    

    或者,您也可以通过索引从options列表中获取项目并点击:

    pax_one_bags = driver.find_element_by_id("ctl00_MainContent_passengerList_PassengerGridView_ctl02_baggageOutDropDown")
    pax_one_bags_select = Select(pax_one_bags)
    
    pax_one_bags.click()
    pax_one_bags_select.options[1].click()  
    

    【讨论】:

      【解决方案2】:

      您可以先计算下拉列表中的数字,然后使用循环选择该特定位置的索引

      pax_one_bags =Select(driver.find_element_by_id("ctl00_MainContent_passengerList_PassengerGridView_ctl02_baggageOutDropDown"))

      int l = pax_one_bags.count();

      for(int i =0 i

      {

      System.out.println("第一个索引是:"+ i[0]);

      }

      【讨论】:

        猜你喜欢
        • 2018-03-30
        • 1970-01-01
        • 2017-04-30
        • 1970-01-01
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        相关资源
        最近更新 更多