0

好吧,这听起来太笼统了。我已经能够在其他领域做到这一点,我不确定这里有什么不同。

我在被测系统的页面中有这段 html 小片段:

<select id="TransferUnit" name="TransferUnit">
<option value="GB" selected="selected">GB</option>
<option value="TB">TB</option>
</select>

很简单,对。在 selenium 中,我可以通过在选择元素上发出 .click() 来打开下拉菜单。我可以使用 .is_displayed() 检查这两个选项是否可见。我可以用 .is_selected() 检查它是否被选中。但我无法让 .click() 更改选择列表中的哪个元素。

当然,这在我手动尝试时有效。但是我在自动化它时遇到了很多麻烦。

欢迎任何帮助。

4

2 回答 2

1

在 IDE 中,使用如下定位器单击元素:

xpath="//option[@value='TB']"
于 2012-05-31T20:24:11.267 回答
1

根据此文档,您可以执行以下操作之一:

任何一个

// even when the drop down is not expanded
driver.find_element_by_xpath("//option[@value='TB']").click();

或者

select = Select(driver.find_element_by_tag_name("select"))
select.deselect_all()
select.select_by_visible_text("TB")

用于Select.

如果两者都不起作用,请更新您的 Selenium 版本(当前版本是 2.22.0)和浏览器,如果可能的话 - 例如完全支持的 Firefox 是 3.6.*、10、11、12。

如果仍然没有任何效果,请寻找令人讨厌的 Javascript 来破坏我们的努力。

于 2012-06-01T00:17:34.113 回答