小编Phi*_*rry的帖子

加速Selenium Webdriver

我使用Perl语言绑定下的Selenium Webdriver(2.0)和Firefox 20.它非常慢.例如,一个常见的操作是<input type="text">用ID和密码填写几个字段.我可以比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 Professional,SP 1(64位)
  • 硬件:戴尔Precision T1650(Xeon 3.5GHz 16GB RAM)
  • 浏览器:带有Selenium IDE 1.10.0的Firefox 20.0.1(生产用户将拥有Chrome,IE9,Opera)

因为即使是"原子"操作(例如将文本输入到输入字段中)也是如此之慢,我认为使用XPath定位器而不是CSS或Perl而不是其他语言是一个问题.有人建议我尝试Chrome而不是FF - 这可以帮那么多吗?我在表格单元格中进行了很多定位文本,因此遗憾的是CSS定位器价值有限.

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

perl selenium selenium-webdriver

9
推荐指数
1
解决办法
2973
查看次数

使用Firefox 26的Selenium Webdriver 2?

今天早上我用2.32和Firefox 25.0.1运行Selenium.Firefox更新到26.0,突然Selenium停止工作.它会弹出新的浏览器窗口,但只是坐在那里提示搜索或地址.Selenium已知有问题吗?它是否被Firefox地址栏中的新提示搞糊涂了?是否已经在较新的Selenium 2.3x中修复过?

在等待修复时,更改我的代码以使用Chrome或(yecch)IE10的最简单方法是什么?我想让我的测试代码可配置,以便我的小组中的其他人可以使用他们选择的浏览器(尤其是Chrome).我试过通过在new()方法中添加'browser_name'=>'*chrome'来让Chrome工作,但它从未奏效.

顺便说一句,我使用的是Perl语言绑定(Selenium :: Remote :: Driver 0.17).

perl firefox selenium google-chrome

8
推荐指数
1
解决办法
3561
查看次数

"T"和"F"在Perl 5.16.3中有特殊含义吗?

我有一些Perl代码正在做一些奇怪的事情,我无法弄清楚.我在这段代码之前定义了两个变量:

$latestPatch = '000';
$test_setup{appl}{Rev0_OK} = 'F';  # a hash element
Run Code Online (Sandbox Code Playgroud)

两者都被定义为字符串.如果我打印出原始变量(包裹它们),'int($latestPatch)''0''$test_setup{appl}{Rev0_OK}''F'.到目前为止,正如所料.现在我运行以下内容:

$shouldInstall = int($latestPatch) == 0 &&
                 $test_setup{appl}{Rev0_OK} eq 'T';
Run Code Online (Sandbox Code Playgroud)

$shouldInstall最终得到一个空值(false/0预期)!(打印'$shouldInstall'给'').逐步调试语句(未显示)表明int($latestPatch) == 0工作正常,给出1(TRUE),但是$test_setup{appl}{Rev0_OK} eq 'T'为''(因此$shouldInstall是'').如果我将测试更改为$test_setup{appl}{Rev0_OK} eq 'F',则为1(TRUE).如果我将测试更改为$test_setup{appl}{Rev0_OK} ne 'F',则它再次为空.这里发生了什么?没有发出错误消息.我确实有布尔变量TRUE和FALSE(如int 1和0).

aTdHvAaNnKcSe

perl

1
推荐指数
1
解决办法
110
查看次数