【发布时间】: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