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

时间:2018-03-01 20:28:07

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

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

for i in range(0, len(y_test)):
if y_pred[i].any() != y_test[i].any():
    image = x_test_copy[i]
    path = 'path'
    cv2.imwrite(os.path.join(path , str(i)+'.jpg'), image)

问题:自动化脚本使用硬编码的xpath语句定位相同的状态值(" CA")(请参阅下面脚本中的代码片段)。相反,我想使用名为" state"。

的存储变量来选择状态值
<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。

我还尝试使用Selenium Select方法找到下拉元素,但我收到消息告诉我&#34;选择仅适用于&lt; select&gt;元素,而不是&#39; div&#39; &#34;

driver.findElement(by.xpath(&#34; //选择[@ SD_7vnwWhO0KG80czzPb3 =&#39;&#39;] /选项[@value =&#39; CA&#39;]&#34; ))。单击()

1 个答案:

答案 0 :(得分:0)

尝试按文字内容选择所需选项:

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