我使用Selenium WebDriver来截取网页的屏幕截图。它运行得很好。然而,从我在eclipse中点击run到截图显示在我的本地驱动器上的时间是7-10秒。大部分的延迟似乎都是在启动Firefox。
代码:
WebDriver driver = new FirefoxDriver();
driver.get("http://www.cnn.com");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\test\\screenshot.png"));我怎样才能加速这个过程?有没有办法可以使用已经打开的Firefox浏览器来节省打开新浏览器的时间?这段代码是不是很重?
详细信息:使用eclipse在CentOS盒和Win7盒上试用。myspeedtest.net显示关闭22 Mbps和打开1 Mbps。
发布于 2012-10-23 06:36:55
你所要求的(允许WebDriver附加到正在运行的浏览器上)现在已经成为almost 3 years的一个问题。到目前为止,该功能仍未添加。据我所知,没有办法让Firefox加载得更快。不过,您可以尝试其他一些技巧。
fp.setPreference("webdriver.load.strategy", "unstable")引用this page的警告
火狐有一个测试版功能,可以让
在调用.get或.click后不再等待整个页面加载。这可能会导致立即查找中断,因此请确保也使用隐式或显式等待。这仅适用于Firefox,而不适用于其他浏览器。
您也可以尝试使用loading with a profile,看看这是否有帮助。
发布于 2012-10-23 19:37:18
从我在其他地方学到的东西-
参考文献:
http://www.codeweavers.net/6-ways-to-speed-up-selenium-tests/
http://sauceio.com/index.php/2011/02/speed-up-your-selenium-tests/
希望这能有所帮助!
发布于 2014-01-30 23:58:26
This thread给出了可能的解释。
总而言之,Selenium遍历所有网卡并调用一个方法(getHostName),这会占用虚拟网卡很长的时间。禁用它们解决了线程中的操作问题。
(在我自己的例子中,我无法禁用它们中的任何一个,并且必须在每个测试用例开始时等待……)
https://stackoverflow.com/questions/13020841
复制相似问题