【问题标题】:Python + Selenium - Select Drop Down Option using Stored VariablePython + Selenium - 使用存储变量选择下拉选项
【发布时间】:2018-08-10 00:32:06
【问题描述】:

我编写了一个 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”)(参见下面脚本中的代码 sn-p)。相反,我想使用一个名为“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。

我也尝试使用 Selenium Select 方法定位下拉元素,但我收到消息告诉我“Select 仅适用于

driver.findElement(by.xpath("//select[@SD_7vnwWhO0KG80czzPb3='']/option[@value='CA']")).click()

【问题讨论】:

    标签: python-3.x selenium-webdriver drop-down-menu


    【解决方案1】:

    尝试通过其文本内容选择所需的选项:

    state = "CA"
    state_selection = self.driver.find_element_by_xpath("//div[.='%s']" % state)
    state_selection.click()
    

    【讨论】:

    • 嗨 Andersson - 您的代码有效(并且比硬编码的 xpath 更干净)。但是,是否可以根据变量选择状态值?
    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2020-05-15
    相关资源
    最近更新 更多