我一直在使用selenium IDE& Selenium远程驱动程序来测试一个网站。当我将文件导出到perl并尝试运行它时,我尝试打开一个javascript链接时出错。这是我一直在尝试的代码:
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;
use Env;
my $sel = Test::WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*firefox",
browser_url => "http://cpc.cs.qub.ac.uk/" );
$sel->open_ok("http://cpc.cs.qub.ac.uk/" , undef, "Getting Webpage CPC");
$sel->set_speed("1000");
$sel->wait_for_page_to_load_ok("10000");
$sel->select_frame_ok("toolbar");
$sel->click_ok(" //a[contains(\@href,'javascript:goTo(overview.html');)] ");
#and tried this format as well
$sel->click_ok("//a[\@href='javascript:goTo('overview.html');']");
$sel->wait_for_page_to_load_ok("10000");
它说无法找到元素,我一直在尝试使用Xpath作为定位器,但似乎无法找到。下面是我试图点击的链接的HTML:
<title>CPC Toolbar</title>
<script language="javascript" src="./toolbar.js"></script>
<tr>
<td align="center" >
<a href="javascript:goTo('overview.html');" onMouseover="libserv.src='icons/redlibserv.gif'" onMouseout="libserv.src='icons/bluelibserv.gif'"><IMG SRC="icons/bluelibserv.gif" name="libserv" width="100" height="20" border="0">
</a>
</td>
</tr>
如何实现这一点的任何帮助将非常感激。同样在WWW :: Selenium模块中,它将这些xpath格式用作定位器:
xpath=//img[@alt='The image alt text']
xpath=//table[@id='table1']//tr[4]/td[2]
xpath=//a[contains(@href,'#id1')]
xpath=//a[contains(@href,'#id1')]/@class
xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td
xpath=//input[@name='name2' and @value='yes']
xpath=//*[text()="right"]
提前致谢。
答案 0 :(得分:1)
我认为这是Firefox 22和selenium的一个问题,在发布时尚未解决
修改 - 来源:https://code.google.com/p/selenium/issues/detail?id=5554
答案 1 :(得分:1)
我到目前为止找到的解决方案是降级到FF21并安装了Sel 2.1.0 IDE正常工作。但他们已经发布了sel 2.2.0 IDE,其中包含FF22的修复程序,可以确认它运行正常。
答案 2 :(得分:1)
Firefox版本22引入了一个问题,因此selenium无法与FireFox 22一起使用。
https://code.google.com/p/selenium/issues/detail?id=5554 https://code.google.com/p/selenium/issues/detail?id=5841 https://code.google.com/p/selenium/source/detail?r=d1b1fc24f060
在Selenium 2.33中没有解决,但应该在2.34。与此同时,唯一的解决方案似乎是手动降级到Firefox 21:
http://support.mozilla.org/en-US/kb/install-older-version-of-firefox https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/21.0/win32/en-US/Firefox%20Setup%2021.0.exe
答案 3 :(得分:0)
XPath引用错误。你不能使用相同的字符(撇号)来区分几个东西。
$sel->click_ok(q(//a[@href="javascript:goTo('overview.html');"]));
代码未经测试。