【问题标题】:Speeding up Selenium Webdriver加速 Selenium Webdriver
【发布时间】:2013-05-31 18:54:56
【问题描述】:

我在 Perl 语言绑定下使用 Selenium Webdriver (2.0) 和 Firefox 20。它非常慢。例如,一个常见的操作是用 ID 和密码填写几个 <input type="text"> 字段。我输入它的速度比 Selenium 的“send_keys”方法快 2 到 3 倍。定位元素,例如大表格中带有特定文本的表格单元格,就像看着油漆变干一样。

我认为可能有某种默认速度设置不是最高值,但 get_speed 和 set_speed 方法已被删除。那么,Selenium 是否已经用尽了,还是有一些我可以调整的设置?我已经看到很多关于如何减慢 Selenium 的问题,但此时我正在寻找如何加快速度。如有必要,我会担心以后放慢速度。

  • Perl:Strawberry Perl 5.16.3(测试程序驱动)
  • Java:1.7.0_21-b11(用于 Selenium Server .jar 文件)(32 位)
  • Selenium::Remote::Driver:0.16,通过 CPAN(Perl 语言绑定)
  • Selenium-Server-Standalone:2.32.0
  • 操作系统:Windows 7 专业版,SP 1(64 位)
  • 硬件:Dell Precision T1650(至强 3.5GHz 16GB RAM)
  • 浏览器:Firefox 20.0.1 和 Selenium IDE 1.10.0(生产用户将拥有 Chrome、IE9、Opera)

由于即使是“原子”操作(例如在输入字段中输入文本)也很慢,所以我认为使用 XPath 定位器而不是 CSS 或 Perl 而不是其他语言都不是问题。有人建议我尝试使用 Chrome 而不是 FF——它对 有多大帮助?我经常在表格单元格中定位文本,因此不幸的是 CSS 定位器的价值有限。

非常感谢您对此提供的任何帮助!如果这个测试自动化不比手动运行测试快,我会看起来很糟糕!

【问题讨论】:

  • 我从 Selenium 转移到使用 Mozilla 平台 API 来直接驱动 Firefox(例如:编写“特权”JavaScript 代码)。它唯一的性能瓶颈是等待 HTTP 响应。但是,这些 API 将要求您大量了解 Mozilla 应用程序的内部结构。
  • 我很想知道将 Firefox 降级几个版本是否有任何影响。并不是说如果它有效,那就是一个解决方案,但是知道 Firefox 的版本是否与该问题有任何关系会很有趣。
  • 如果有一种方法可以加速由 Selenium 驱动的浏览器,那么您会认为 Selenium 开发团队会为我们提供一些东西,但他们没有。
  • 我仍在重写大量测试代码,尤其是使用精确文本 = 而不是 contains()。自从我升级到 FF 21 后,它似乎快了很多,甚至是文本输入操作。完成后,我会尽量记住在这里报告。
  • 仍然没有我想要的那么快,但是 FF 22 和精确文本测试现在似乎已经足够快了。还没有完成,但我认为它已经足够了。

标签: perl selenium selenium-webdriver


【解决方案1】:

聚会有点晚了,但有一个幻像驱动程序http://phantomjs.org/,它不使用屏幕驱动程序并且可以连接到 selenium。

  ./phantomjs --webdriver=5556 --webdriver-selenium-grid-hub=http://localhost:4444

或将其链接到远程集线器

【讨论】:

    【解决方案2】:

    这可能并不直接适用,但您可以遵循一些简单的提示来首先调查大部分时间都花在了哪里。请看下面的文章:

    https://blog.mavenhive.in/7-tips-to-speed-up-your-webdriver-tests-4f4d043ad581

    我想其中大部分都是通用步骤,无论用于测试的工具如何,它们都将适用。

    【讨论】:

      【解决方案3】:

      对于任何提出这个问题的人:

      Selenium 测试已经在很多方面发生了变化,并且它们的运行速度比以前更快。

      但是为了让您的测试运行得更快,请使用headless 模式,它不会打开任何测试窗口。它在chromedrivergeckodriver 中都可用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-08
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多