我试图自动化一个场景(在Ruby中)按钮的初始文本是'激活',一旦它被点击,它需要3-5秒做任何必要的事情然后按钮文本更改为“取消激活”。Selenium Webdriver等待按钮文字改变
因为按钮总是存在,所以使用下面的代码并没有帮助。
wait.until {
driver.find_element(:id => 'changeStatus')
}
如何在点击后检查按钮文本之前询问webdriver等待5秒钟。
我试图自动化一个场景(在Ruby中)按钮的初始文本是'激活',一旦它被点击,它需要3-5秒做任何必要的事情然后按钮文本更改为“取消激活”。Selenium Webdriver等待按钮文字改变
因为按钮总是存在,所以使用下面的代码并没有帮助。
wait.until {
driver.find_element(:id => 'changeStatus')
}
如何在点击后检查按钮文本之前询问webdriver等待5秒钟。
你应该能够做一个等待和查看文本,而不是
wait.until {
driver.find_elements_by_xpath("//*[text()='Deactivate']")
}
布伦丹的答案肯定是正确的,但我会用一个更具体的XPath,因为答案说明会等到字'停用'出现在网页的任何地方。
考虑缩小搜索元素的类型,并进一步缩小ID。你不说是什么类型的元素,所以我想这是一个锚标记(//一),根据需要调整
wait.until {
driver.find_elements_by_xpath("//a[@id='changeStatus' and text()='Deactivate']")
}
这应该加快搜索速度相当
感谢。是的,这是有效的。一个小记录,我总是(尽可能)使用id而不是xpath。 – 2014-09-03 16:55:03
我使用CSS选择器来查找ID或类名称。 Xpaths有点慢,但能够搜索CSS选择器无法搜索的文本。在你的情况,我不认为有任何其他的选择,而不是寻找与xpath的文本。 – Brendan 2014-09-03 17:18:43