如何在pageLoadTimeout异常上继续webdriver测试?

时间:2014-09-15 11:57:28

标签: java selenium-webdriver

我在Selenium Webdriver上运行我的测试用例。我有一个场景,点击一个特定的按钮,页面开始加载无限时间。由于click命令没有完成,我无法使用webdriver sendkeys(Keys.Escape)函数停止页面加载。

我尝试使用driver.manage().timeouts().pageLoadTimeout(3L, TimeUnit.SECONDS);来停止页面加载,但它也未通过测试用例。尝试使用try catch同样。

我想要的是页面加载应该在3秒后停止,测试应该继续下一步。如何处理pageLoadTimeout以便它不会在我的测试中失败并在3秒内停止加载页面。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试使用操作单击元素的位置,而不是使用内置的IWebelement Click。

using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Interactions.Internal;

Actions builder = new Actions(driver);
IWebElement tagElement = driver.FindElement(By.Id(""));
builder.MoveToElement(tagElement).Click().Perform();

上述代码中的点击是鼠标模拟点击。

如果你经常这么做,你可能想要创建一个ClickAt函数。

public void ClickAt(IWebElement tagElement)
{
    Actions builder = new Actions(driver);
    builder.MoveToElement(tagElement).Click().Perform();      
}