Selenium:尝试从Perl调整窗口大小:出现一个神秘的JavaScript错误
我正在使用Perl Selenium包。Selenium:尝试从Perl调整窗口大小:出现一个神秘的JavaScript错误,javascript,perl,selenium,Javascript,Perl,Selenium,我正在使用Perl Selenium包。 试图调整浏览器窗口的大小时,我遇到了一个神秘的JavaScript错误: “引发异常:缺少;before语句” 代码如下: use strict; use warnings; use 5.014; use autodie; use warnings qw< FATAL utf8 >; use Carp; use Carp::Always; use WWW::Selenium; my $url = 'http://www.google.co
试图调整浏览器窗口的大小时,我遇到了一个神秘的JavaScript错误:
“引发异常:缺少;before语句”
代码如下:
use strict;
use warnings;
use 5.014;
use autodie;
use warnings qw< FATAL utf8 >;
use Carp;
use Carp::Always;
use WWW::Selenium;
my $url = 'http://www.google.com'; #for example
my $sel = WWW::Selenium->new( host => 'localhost',
port => 4444,
browser => '*firefox F:\WIN 7 programs\Web & Internet\Firefox 8 bit\firefox.exe',
browser_url => $url,
);
$sel->open( $url );
$sel->wait_for_page_to_load(10000);
my $res = $sel->window_maximize(); # So far, this works fine
$res = $sel->get_eval( q{ WebDriver driver = ((WebDriverBackedSelenium) selenium).getWrappedDriver();
driver.manage().window().setSize(1040,720);} );
# (Following this: http://stackoverflow.com/questions/1522252/, Eli Colner's post)
如果我删除第一行JavaScript代码,只留下第二行代码,即:
$res = $sel->get_eval( q{driver.manage().window().setSize(1040,720);} );
它与:“未定义驱动程序”
冲突
将感谢您的帮助-提前感谢
海伦
注意:此处交叉发布:我在代码中看到无效的javascript,您做出了错误的假设。关于代码所基于的引用SO线程: 是什么让你认为Eli Corner的答案/解决方案是“javascript”?这就是Java或C#否则,因为只有WebDriver(或Selenium 2)的语言绑定公开WebDriverBackedElenium特性。所有其他语言绑定,包括Perl,都没有这样的选项。因此,即使代码语法正确,在执行时也会失败,因为这不是javascript(或者我应该说引用的类/对象不是javascript) 在我看来,您的解决方案选项包括:
您当然可以用一行代码来编写它:
((WebDriverBackedSelenium)selenium).getWrappedDriver().manage().window().setSize(1040720)
@Matthias:当用您的建议替换它时,它会在括号中产生错误:缺失)。这通常是一个javascript错误,不指向缺失的括号,而是指向无效的javascript,原因是(有时:错误的字符串表示)(请参见Slaks的评论:[.这让我觉得Perl WWW::Selenium模块没有正确地将javascript字符串传递给Selenium服务器。请参见此处:[
$res = $sel->get_eval( q{driver.manage().window().setSize(1040,720);} );