繁体   English   中英

使用硒python从下拉菜单中动态查找最高价值

[英]find top value dynamically from drop down menu using selenium python

我在Selenium中使用Python。 我正在尝试使我需要从下拉菜单中提取最高价值的应用程序自动化。 值不断变化,因此我无法将静态xpath传递给我的硒python代码。

我尝试了以下代码,但没有一个起作用。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
import selenium.webdriver.support.ui as UI
select=driver.find_element_by_xpath("//*[@id='code' and @name='Code1']")
for option in select.options:
    print(option.text,option.get_attribute('value'))

想法是找到所有值并提取最高值。 当我打印select.options我什么也看不到。 我通过检查下拉菜单提取了以下HTML。

<select name="Code1" style="width:250px" class="code" id="code">
    <option value="Select Code">Select  Code</option>
    <option value="GGGSGSG:C">GGGSGSG:C</option>
    <option value="AHR060">AHR060--NORTH</option>
    <option value="AGSGGS">AGSGGS--PTSTTS</option>
    <option value="NANNAN">NANNAN--BTSTT</option>
</select>

现在值不断变化,因此我无法在xpath中传递任何特定值。 我需要动态查找所有选项值,并将最上面的一个传递给变量,然后使用该变量调用xpath并单击该元素。

您可以尝试以下操作以使用索引选择顶部元素。

select = UI.Select(driver.find_element_by_xpath("//*[@id='code' and 
@name='Code1']"))
select.select_by_index(0) 

尝试这个

from selenium.webdriver.support.select import Select as WebDriverSelect
select_element = WebDriverSelect(driver.find_element_by_xpath("//*[@id='code' and @name='Code1']"))
select_element.select_by_index(0)

为什么不将css选择器用作第一个值,例如:

select#code option + option

或xpath

//select[@id='code']/option[2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM