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