一尘不染

等待Selenium Webdriver进行更改的最佳实践?

selenium

在单击事件之后,我需要等待elements属性更改,然后再继续操作(click事件导致某些元素移出焦点,某些其他元素通过JS获得焦点)

在花了一些时间在Web驱动程序中寻找“
waitForAttribute”(selenium1命令)的可靠替代方法之后,我可以使用下面的代码来工作。但是我不确定这是否是最好的实现…

还有其他更好的解决方案吗?

wait = new WebDriverWait(wedriver1, TimeSpan.FromSeconds(5));
.....
button.Click();
wait.Until(webdriver1 => webdriver2.webelement.GetAttribute("style").Contains("display: block"));

另外,任何人都可以共享一个链接,该链接指向我如何使用WebDriver处理AJAX事件更改。


阅读 272

收藏
2020-06-26

共1个答案

一尘不染

这是硒的反复出现的问题。我不确定是否存在“最佳”实施。我认为这在很大程度上取决于情况。

关于AJAX驱动的更改,我通常会根据AJAX调用在页面上所做的更改来使用waitForElementPresent或waitForElementNotPresent。

2020-06-26