一尘不染

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

selenium

我正在使用python API将一些Selenium RC测试转换为Selenium WebDriver。在Selenium
WebDriver中,我注意到这driver.get( 'http://...' )似乎要等待整个页面加载后才能继续。有没有一种方法可以不等待页面加载?我要请求的某些页面具有很多外部资源,这些资源可能需要很长时间才能加载。我宁愿等待DOM上的元素出现,也不愿等待所有内容加载。因此,我的某些测试在WebDriver中花费的时间似乎是原来的两倍。


阅读 244

收藏
2020-06-26

共1个答案

一尘不染

是的,没有。从Selenium 2.24.1开始,仅在Firefox中支持此功能-
您必须以特殊的“模式”运行它

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

您甚至可以设置超时时间。此方法在Firefox以外的任何浏览器中都会失败,并且在没有不稳定策略的情况下在Firefox中不会执行任何操作:

driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
2020-06-26