Selenium Webdriver等待按钮文本更改

时间:2014-09-03 14:43:32

标签: selenium selenium-webdriver

我正在尝试自动化一个场景(在Ruby中),其中按钮初始文本是“激活”,一旦点击,需要3-5秒才能完成所需的操作然后按钮文本更改为'停用&#39 ;.

由于该按钮始终存在,因此使用以下代码无效。

wait.until {
  driver.find_element(:id => 'changeStatus')
}

如何在点击后检查按钮文本之前让webdriver等待5秒钟。

2 个答案:

答案 0 :(得分:1)

您应该可以等待并查找文本

wait.until { 
  driver.find_elements_by_xpath("//*[text()='Deactivate']")
}

答案 1 :(得分:1)

Brendan的答案肯定是正确的,但我会使用更具体的XPath,因为陈述的答案将等到“停用”字样。在页面上随处出现。

考虑缩小搜索元素的类型,并进一步缩小ID。你不会说它是什么类型的元素,所以我猜它是一个锚标签(// a),根据需要进行调整

wait.until { 
  driver.find_elements_by_xpath("//a[@id='changeStatus' and text()='Deactivate']")
}

这应该会大大加快搜索速度