我一直在为我的网站使用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搜索是我正在努力做的一个很好的例子。
答案 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()
我确信这可以通过某种方式进行优化。