我使用Perl语言绑定下的Selenium Webdriver(2.0)和Firefox 20.它非常慢.例如,一个常见的操作是<input type="text">用ID和密码填写几个字段.我可以比Selenium以'send_keys'方法快2至3倍的速度输入它.定位元素,例如在大表格中具有特定文本的表格单元格,就像看油漆干燥一样.
我认为可能存在某种默认速度设置并未达到其最高值,但get_speed和set_speed方法已被删除.那么,Selenium是否已经平稳运行,或者是否有一些我可以调整的设置?我已经看到很多关于如何减慢 Selenium的问题,但此时我正在寻找如何加快它的速度.如果有必要,我会担心以后会放慢速度.
因为即使是"原子"操作(例如将文本输入到输入字段中)也是如此之慢,我认为使用XPath定位器而不是CSS或Perl而不是其他语言是一个问题.有人建议我尝试Chrome而不是FF - 这可以帮到那么多吗?我在表格单元格中进行了很多定位文本,因此遗憾的是CSS定位器价值有限.
非常感谢您的帮助!如果这个测试自动化并不比手动运行测试快,我会看起来很糟糕!
今天早上我用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代码正在做一些奇怪的事情,我无法弄清楚.我在这段代码之前定义了两个变量:
$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