0

我有以下代码

select = row.find_element_by_css_selector("select")
select.click()
opts = select.find_elements_by_css_selector("option")[1:]
Select(select).select_by_visible_text(choice(opts).text)

实际上,表单域下拉,随机元素闪烁。所以它似乎工作。但!它不选择元素。不会触发任何 JavaScript 事件,并且表单字段或至少呈现的表单字段保持不变。

4

2 回答 2

2

您需要将 select HTML 元素传递给 Select 对象:

select = Select(row.find_element_by_css_selector("select"))
select.select_by_index(1)

Select许多不同(且方便)的方式来选择您要“选择”的内容: http: //selenium.googlecode.com/git/docs/api/py/webdriver_support/selenium.webdriver.support.select。 html

仅供参考,我不确定您choice()在做什么,但按索引可能不太容易出错(并且更健壮)。也是click()不必要的。

于 2013-09-20T15:27:39.350 回答
1

我发现了问题:无法从下拉字段中选择一个选项。所以,去掉拳头click()就解决了问题。我不确定这在每个浏览器中的行为是否相同,但在 Firefox 中,您不能这样做。

这在 Selenium 中处理得不是很好,因为它不会引发任何异常。

于 2013-09-20T17:30:18.087 回答