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

Python+Selenium-使用存储变量选择下拉选项

阚砚文
2023-03-14

我编写了一个python selenium脚本,它从下拉列表中选择一个状态值。下拉元素的HTML复制如下:

<div class="hQSHyh4QFG0Xh0d-6pxTF" tabindex="0" style="height: 238px; display: none;">
<div class="SD_7vnwWhO0KG80czzPb3 option-0 al-option">AL</div>
<div class="SD_7vnwWhO0KG80czzPb3 option-1 ak-option">AK</div>
<div class="SD_7vnwWhO0KG80czzPb3 option-2 as-option">AS</div>
<div class="SD_7vnwWhO0KG80czzPb3 option-3 az-option">AZ</div>
<div class="SD_7vnwWhO0KG80czzPb3 option-4 ar-option">AR</div>
<div class="SD_7vnwWhO0KG80czzPb3 option-5 ca-option">CA</div>
<div class="SD_7vnwWhO0KG80czzPb3 option-59 um-option">UM</div>
</div>

问题:自动化脚本使用硬编码的xpath语句定位相同的状态值(“CA”)(请参见下面的脚本代码段)。相反,我想使用一个名为“state”的存储变量来选择状态值。

state_selection = self.driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div/div[2]/div[1]/form/div/div[2]/div[2]/div[3]/div[2]/div/div[3]/div[6]")
state_selection.click()

附加说明:我尝试使用其他方法来定位状态值(见下文),但到目前为止,我只成功地使用了上面的硬编码xpath。

driver.findElement(by.xpath(“//select[@SD_7VNWWHO0KG80CZZPB3=”|“]/option[@value='CA']”))。click()

共有1个答案

谢英耀
2023-03-14

尝试按文本内容选择必选项:

state = "CA"
state_selection = self.driver.find_element_by_xpath("//div[.='%s']" % state)
state_selection.click()
 类似资料:
  • 问题内容: 我想从下拉选项中选择一个值。html如下: 我尝试如下: 怎么了 请帮我! 问题答案: 阿德里安Ratnapala是正确的,也是我会选择过,所以你可以尝试以下方法: 要么 要么 您可以使用: 单击此处以获取更多信息。

  • 我正在创建一个演示站点的实践测试,然而,我在从下拉列表中选择一个值时遇到了一个问题,我无法找到元素,然而,它是正确的ID,我也尝试了ID和CSS选择器,但没有运气:(我将在下面发布HTML和Selenium代码: HTML Ruby代码:

  • 你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从

  • 问题内容: 我需要从下拉菜单中选择一个元素。 例如: 1)首先,我必须单击它。我这样做: 2)之后,我必须选择一个好的元素,让我们说Mango。 我试图这样做,但是没有用。 问题答案: 除非你的点击触发了某种Ajax调用来填充列表,否则你实际上不需要执行该点击。 只需找到元素,然后枚举选项,然后选择所需的选项即可。 这是一个例子:

  • 我想从下面的列表中选择一个使用selenium的选项: 这里 但问题是没有列表可供选择。 在此输入图像说明 我到目前为止的代码: 需要帮助!!

  • 我通常使用这个新的Select(driver.findElement(by.id(“title”)).selectByVisibletExt(“mr”);这个效果很好。 我正在移动一个更多的页面工厂的方法我定义了WebElement