当前位置: 首页 > 知识库问答 >
问题:

使用selenium python从下拉菜单动态查找顶部值

鲜于勇
2023-03-14

我正在使用Python和Selenium。我正在尝试自动化一个应用程序,在这个应用程序中,我需要从下拉菜单中提取最高值。这些值不断变化,因此我无法将静态xpath传递给selenium 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时,我什么也没看到。我通过检查下拉菜单提取了以下超文本标记语言。

<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并单击元素。

共有3个答案

詹斌蔚
2023-03-14

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

select#code option + option

或xpath

//select[@id='code']/option[2]
危斯伯
2023-03-14

试试这个

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)
曹涵润
2023-03-14

您可以尝试以下方法,使用index选择顶部元素。

select = UI.Select(driver.find_element_by_xpath("//*[@id='code' and 
@name='Code1']"))
select.select_by_index(0) 
 类似资料:
  • 实现带动画效果的下拉菜单。用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回。 [Code4App.com]

  • 问题内容: 我是堆栈溢出的新手。我需要创建一个静态下拉列表,然后根据在静态下拉列表中选择的值创建一个动态下拉列表。只是Coldfusion和html。没有其他花哨的东西。因此,从第一个下拉菜单中,用户将选择:颜色,ID,官员,学校,然后点击“继续”按钮 然后在同一页面或不同页面上,如果选择了颜色,它将在数据库中进行查询并给出不同颜色的结果,如果选择了id,则将提供查询中的ID编号列表。如果选择了这

  • 在mkdocs材质主题中是否可以有这样的下拉菜单: 默认情况下,材质主题似乎只呈现标题下方的顶级菜单,子菜单在左侧栏中。如果保留左侧栏,我可以。我只想知道是否可以让子菜单显示为第一张图中所示的下拉菜单。 为了更清晰:

  • 有人能推荐一个指南/教程来使用最佳实践在Rails中实现动态选择菜单/级联下拉菜单吗?或者可能是最近关于同一主题的问题。可能我找错了词。 我看了一下railscast:#88动态选择菜单(修订版),但不认为使用csv文件存储选项是最好的方法。 我发现的关于下拉列表的所有其他内容似乎都不完整或过时。

  • 我有一个下拉菜单,除了一个我无法解决的小错误外,它工作得很好。 第一个下拉框项正常出现。然而,第二个下拉框项稍微向右移动。我猜想是我设置的链接的边距导致下拉框稍微向右移动。如果是这样的话,我能做些什么来解决这个问题呢? 这是一个简单的导航菜单,它将drop菜单项的位置设置为绝对位置,并由父元素的overflow:隐藏功能隐藏。悬停时,下拉框会显示溢出:可见。 现场在这里- CSS 超文本标记语言