【发布时间】: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