首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python + Selenium -使用存储变量选择下拉选项

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

Stack Overflow用户
提问于 2018-03-01 20:28:06
回答 1查看 788关注 0票数 0

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

代码语言:javascript
复制
<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“的存储变量来选择状态值。

代码语言:javascript
复制
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只对元素工作,而不是在'div‘上工作。“

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-01 20:53:23

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

代码语言:javascript
复制
state = "CA"
state_selection = self.driver.find_element_by_xpath("//div[.='%s']" % state)
state_selection.click()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49058180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档