如何在perl$sel->;下使用Selenium单击Javascript;点击

如何在perl$sel->;下使用Selenium单击Javascript;点击,selenium,perl,xpath,dom-events,Selenium,Perl,Xpath,Dom Events,我一直在使用SeleniumIDE和SeleniumRemoteDriver测试一个网站。当我将文件导出到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::Excepti

我一直在使用SeleniumIDE和SeleniumRemoteDriver测试一个网站。当我将文件导出到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>

XPath引用是错误的。不能使用同一个字符(撇号)分隔多个事物

$sel->click_ok(q(//a[@href="javascript:goTo('overview.html');"]));

代码未经测试。

我认为这是Firefox 22和selenium的问题,在发布时尚未解决


编辑-来源:

到目前为止,我找到的解决方案是降级到FF21,安装的SEL2.1.0IDE工作正常。但他们已经发布了SEL2.2.0IDE,其中包含FF22的补丁,可以确认它工作正常

Firefox版本22引入了一个问题,因此selenium无法与Firefox 22配合使用

硒在2.33中未分解,但应在2.34中分解。与此同时,唯一的解决方案似乎是手动降级到Firefox 21:


感谢daxim更正了字符串,但它表示在测试时无法执行该命令。错误消息为:值未实现接口事件。还有什么我遗漏的东西应该放在它前面,以允许它与Javascript交互。如果有帮助,firebug的Xpath是/html/body/p/table/tbody/tr[2]/td/aThanks user1697631。我也读过。大多数人降级为FF21。所以我正在做这件事。但这似乎解决了他们的大部分解决方案。实际上,似乎有一个修复程序需要下载IDE2.1.0。更多信息:当我从终端运行它时,仍然无法使它工作。任何进一步的帮助都将是巨大的
$sel->click_ok(q(//a[@href="javascript:goTo('overview.html');"]));