Java Selenium Webdriver.load.strategy不稳定

Java Selenium Webdriver.load.strategy不稳定,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,我在用webdriver加载页面时遇到问题。我目前的(有问题的)解决方案涉及在firefox中使用不稳定的负载,但我对其他解决方案持开放态度 核心问题 我所有问题的根源都来自这样一个事实:当我使用webdriver正常调用页面时,我的页面永远不会完全加载,因此永远不会执行第二步,它只是一直在加载。当您使用普通浏览器访问站点时,它可以正常加载。我已经尝试了一些间歇性工作的变通方法,包括打开google的驱动程序,然后转到有时会加载的页面,然后使用 IJavaScriptExecutor js =

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

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

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

正如所建议的,这有时会使其在不加载的情况下继续。但这两种方法都不能始终如一(可能尝试以下方法:

不要等待元素在页面上的可见性—在您的情况下,
By.id(myId)

在页面完全加载之前,在加载和启动所有java脚本之前,元素可以变得可见。
等待页面上的某些元素变为可单击。例如,您可以等待,
link
变为可单击:

By locatorOfLink1 = By.xpath(....); // By.id, By.name, By.linkText etc.
wait.until(ExpectedConditions.elementToBeClickable(locatorOfLink1));

如果上述操作对问题#2没有帮助(单击后webdriver卡住),则将ENTER键发送到链接,而不是单击:



尝试以下方法:

不要等待元素在页面上的可见性—在您的情况下,
By.id(myId)

在页面完全加载之前,在加载和启动所有java脚本之前,元素可以变得可见。
等待页面上的某些元素变为可单击。例如,您可以等待,
link
变为可单击:

By locatorOfLink1 = By.xpath(....); // By.id, By.name, By.linkText etc.
wait.until(ExpectedConditions.elementToBeClickable(locatorOfLink1));

如果上述操作对问题#2没有帮助(单击后webdriver卡住),则将ENTER键发送到链接,而不是单击:



感谢您的回复!奇怪的是,您的第一个解决方案像前10次一样工作,但我决定再次运行它,它仍然没有等待页面加载。之后的3次它不工作,然后是之后的一次。奇怪的是,不幸的是,发送Enter也没有工作。它没有被卡住,但没有重新启动以点击的方式登录。感谢您的回复!奇怪的是,您的第一个解决方案与前10次一样有效,但我决定再次运行它,它仍然没有等待页面加载。之后的3次它不起作用,然后是之后的一次。奇怪的是,不幸的是,发送Enter也不起作用。它不起作用没有卡住,但它没有将其注册为单击。
By locatorOfLink1 = By.xpath(....); // By.id, By.name, By.linkText etc.
wait.until(ExpectedConditions.elementToBeClickable(locatorOfLink1));
element1.sendKeys(Keys.ENTER);