我在页面上有一个链接,当点击这个页面时,它会刷新这个页面。
如何使用Selenium-IDE验证页面确实已被刷新/重新加载?
发布于 2013-09-06 09:41:10
我通过断言页面上最初存在的元素在刷新后立即不出现在页面上,然后等待页面完全刷新,并断言元素再次出现,从而解决了这个问题。
更新:如果存在一些textbox元素,也可以很容易地验证页面刷新。只需使用type命令将一些文本插入到textbox字段中,然后刷新页面,文本框内的文本应该返回到原来的状态。
发布于 2013-09-05 13:25:22
简单的方法是等到页面上的最后一个元素。
在Selenium-IDE中,您可以使用大量的等待*-命令来完成这一任务,例如:
waitForElementPresent element_xPath
waitForVisible element_xPath
诸若此类。
发布于 2017-02-14 13:55:49
如果像我一样,您发现检查元素的可见性和不可见性可能是不可靠的,那么还有一种选择。
如果您的网站使用jQuery,我发现最可靠的方法是检查jQuery.active的状态以确定页面刷新。
例如,在C#中,我使用以下方法:
public bool CheckPageHasRefreshed()
{
try
{
// Wait for jQuery to become active (the page is refreshing)
wait.Until(x => (((IJavaScriptExecutor)WebDriver).ExecuteScript("return jQuery.active != 0")));
// Wait for jQuery to become inactive (the page refresh has completed)
wait.Until(x => (((IJavaScriptExecutor)WebDriver).ExecuteScript("return jQuery.active === 0")));
return true;
}
catch (WebDriverTimeoutException)
{
return false;
}
}这是因为只有当页面上的所有后端加载活动完成后,jQuery.active才会返回0。如果事情还在幕后发生,那就不会了。
https://stackoverflow.com/questions/18637123
复制相似问题