好吧,这听起来太普通了。我已经能够在其他领域做到这一点,但我不确定这里有什么不同。
在我测试的系统页面中有一小段html:
<select id="TransferUnit" name="TransferUnit">
<option value="GB" selected="selected">GB</option>
<option value="TB">TB</option>
</select>
很简单,对吧。在selenium中,我可以通过在select元素上发出.click()来打开下拉列表。我可以使用.is_displayed()检查这两个选项是否可见。我可以用.is_selected()检查它是否被选中。但是我不能让.click()更改列表中选择的元素。
当然,当我手动尝试时,这是可行的。但我在自动化方面遇到了很多麻烦。
欢迎任何帮助。
发布于 2012-05-31 20:24:11
在IDE中,单击具有如下定位器的元素:
xpath="//option[@value='TB']"
发布于 2012-06-01 00:17:34
根据this doc的说法,您可以执行以下操作之一:
任一
// 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")
如果两者都不起作用,那么更新您的Selenium版本(当前版本是2.22.0)和您的浏览器,如果可能的话-例如,完全支持的Firefoxes是3.6.*,10,11,12。
如果仍然没有效果,那就看看讨厌的Javascripts会毁了我们的努力吧。
https://stackoverflow.com/questions/10839717
复制相似问题