问题 Selenium WebDriver无需等待页面加载即可转到页面


我正在使用python api将一些Selenium RC测试翻译成Selenium WebDriver。在Selenium WebDriver中,我注意到了这一点 driver.get( 'http://...' ) 似乎在继续之前等待整个页面加载。有没有办法不等待页面加载?我要求的一些页面有很多外部资源可能需要很长时间才能加载。我宁愿等待DOM上的元素出现,而不是等待加载所有内容。由于这个原因,我的一些测试似乎在WebDriver中需要两倍的时间。


4865
2017-07-12 15:26


起源

@Slanec你们两个都很棒。我艰苦的搜索得出了一个圆满的结论。 - Nathan Lippi


答案:


是的,不是。截至Selenium 2.24.1, 对此的支持仅在Firefox中 - 您必须以特殊的“模式”运行它

FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("webdriver.load.strategy", "unstable");
WebDriver driver = new FirefoxDriver(fp);

你甚至可以设置 如果你愿意,超时。此方法在除Firefox之外的任何浏览器中都会失败,并且在没有不稳定策略的情

driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);

13
2017-07-12 15:37



谢谢。完全回答了我的问题。 - Jackson
此外,在轮询预期页面上的对象时,如果使用findElements()而不是findElement(),则可以通过使用“if findElements()= 0 keep trying”之类的内容来避免使用空指针。 - djangofan
什么是页面加载超时的Python等效代码? - The_Diver
相关问题: FirefoxDriver webdriver.load.strategy不稳定的findelements从错误的页面获取元素 - DuffJ
截至2016年,据此 github.com/SeleniumHQ/selenium/issues/2873 它仅适用于Firefox <46 - lmiguelmh