有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Selenium Web驱动程序。负载策略不稳定

我在用webdriver加载页面时遇到问题。我目前(有问题的)解决方案涉及在firefox中使用不稳定的负载,但我对其他解决方案持开放态度

核心问题 我所有问题的根源都来自这样一个事实:当我用webdriver正常调用页面时,我的页面永远不会完全加载,因此永远不会执行第二步,它只是一直在加载。当你使用普通浏览器访问网站时,它可以正常加载。我已经尝试了一些间歇性工作的变通方法,包括打开谷歌的驱动程序,然后转到有时会让它加载的页面,并使用

IJavaScriptExecutor js = (IJavaScriptExecutor)Driver;
js.ExecuteScript("return window.stop");

正如this question所建议的,这有时会使它在不加载的情况下继续。但这两种方法都无法始终如一地发挥作用(可能<;50%的时间)

到目前为止,我最好的方法就是使用不稳定负载策略。然而,这也有不同的问题,所有这些都只是偶尔发生

1)有时它根本不等待页面加载,在加载页面后的毫秒内,我会收到一个“无法定位元素:”异常,尽管我设置了等待:

new WebDriverWait(cdriver, 30).until(ExpectedConditions.visibilityOf(cdriver.findElement(By.id(myId))));

线。睡眠(3000);解决了这个问题,但我读过这是一种草率的做事方式

2)如果我通过了该步骤,我的测试应该单击一个链接,然后单击另一个链接,继续测试。然而,在第一次点击之后,它经常会卡住。如果我的代码是这样的:

    Thread.sleep(3000);
   element1.click();
     System.out.println("clicked!");
    element2.click();

第一次点击(顺便说一句,它不会加载新页面,只是在同一页面上弹出一个窗口)会起作用,但系统永远不会打印出“点击!”,它被卡住的方式与最初加载页面的方式相同(没有不稳定的加载)。如果/当它越过那道障碍时,我认为剩下的测试是可以的

任何想法1)为什么它有时有效,但其他的不起作用。2) 如何修复它3)如何首先让我的页面加载

谢谢!


共 (0) 个答案