如何使用selenium和Python测试自动完成

时间:2013-12-19 06:48:26

标签: python django selenium autocomplete selenium-webdriver

我一直在为我的网站使用selenium进行一些测试。但是,我还没有找到一种方法来测试由自动完成填充的输入文本字段。例如,我想选择自动完成列表下拉列表中显示的其中一个位置。

这是我到目前为止所做的:

driver.find_element_by_id("id_location_0").send_keys("Free City")
driver.find_element_by_id("ui-active-menuitem").click()

如何使用Python在selenium中实现自动完成/自动建议测试?

注意: Google搜索是我正在努力做的一个很好的例子。

2 个答案:

答案 0 :(得分:0)

这实际上取决于应用程序,但一般的方法是:

查看自动完成列表中显示的元素类型,如果谷歌是跨越表格,那么你会做类似的事情

driver.find_element_by_css_selector("css selector that matches all the auto complete suggestions)

然后迭代它们直到找到你期望的那个/。

谷歌的另一个选择是使用keydown事件来选择一个选项,并输入密钥以确认这是您的选择

答案 1 :(得分:0)

以下代码对我有用:

driver.find_element_by_id("id_location_0").send_keys("Free City")
element_to_hover_over = driver.find_element_by_css_selector("ul.ui-autocomplete > :first-child ")
hover = ActionChains(driver).move_to_element(element_to_hover_over)
hover.perform()
driver.find_element_by_id("ui-active-menuitem").click()

我确信这可以通过某种方式进行优化。