Selenium WebDriver可以工作但是SLOW(Java)

Chr*_*ris 11 selenium screenshot webdriver selenium-webdriver

我正在使用Selenium WebDriver截取网页截图.它运行得很好.但是,从我在eclipse中运行的时间到我本地驱动器中显示的屏幕截图是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"));
Run Code Online (Sandbox Code Playgroud)

我怎样才能加快这个过程?有没有办法可以使用已经打开的Firefox浏览器来保存开新的浏览器?这段代码有点沉重吗?

详细信息:使用eclipse在CentOS盒和Win7盒上尝试.myspeedtest.net显示22Mbps下行和1 Mbps上行.

Mik*_*wan 11

你要求的东西(允许WebDriver附加到正在运行的浏览器)已经成为近3年的问题.到目前为止,尚未添加此功能.据我所知,没有办法让Firefox加载更快.你可以试试其他一些技巧.

fp.setPreference("webdriver.load.strategy", "unstable")
Run Code Online (Sandbox Code Playgroud)

这个页面引用警告:

有一个beta功能可以让firefox在调用.get或.click之后不等待整页加载.这可能导致立即查找中断,因此请务必使用隐式或显式等待.这仅适用于Firefox而非其他浏览器.

您也可以尝试加载配置文件,看看是否有帮助.


som*_*guy 5

从我在其他地方学到的东西 -

  1. 关闭浏览器/插件的自动更新
  2. 将您的IIS(或等效)应用程序超时设置为零
  3. 创建一个基础Selenium Fixture,用于您的测试
  4. 更新到最新版本的Selenium
  5. 在测试之前预热您的应用程序
  6. 简短的测试
  7. 预填充cookie.

参考文献:

https://sqa.stackexchange.com/questions/1988/selenium-reuse-existing-browser-session-instead-of-opening-new-windows

http://www.codeweavers.net/6-ways-to-speed-up-selenium-tests/

http://sauceio.com/index.php/2011/02/speed-up-your-selenium-tests/

希望这可以帮助!

  • 我是六篇文章的作者 - 很高兴你发现它很有用.只是为了回应这里的内容,关键是保持您的应用程序温暖,不要让您的服务器超时,并确保在测试运行期间不会尝试更新任何内容. (2认同)