Perl 如何在selenium会话中配置chromium设置
最近我升级到了chromium[1]的最新版本,现在默认情况下禁用了第三方cookie。现在,我使用chromedriver[3]对selenium[2]进行的一项测试失败了,因为它依赖于第三方cookie Facebook 我要更改的设置似乎位于JSON中的文件/path/to/profile/Default/Preferences中,如下所示:Perl 如何在selenium会话中配置chromium设置,perl,google-chrome,selenium,debian,chromium,Perl,Google Chrome,Selenium,Debian,Chromium,最近我升级到了chromium[1]的最新版本,现在默认情况下禁用了第三方cookie。现在,我使用chromedriver[3]对selenium[2]进行的一项测试失败了,因为它依赖于第三方cookie Facebook 我要更改的设置似乎位于JSON中的文件/path/to/profile/Default/Preferences中,如下所示: { ... "profile" : { ... "block_third_party_cookies": false,
{
...
"profile" : {
...
"block_third_party_cookies": false,
...
}
...
}
use Selenium::Remote::Driver;
use File::Temp 'tempdir';
my $template_dir = '/path/to/template/dir/';
my $dirname = tempdir(
'chrome_user_data_XXXXXX',
DIR => '/tmp',
CLEANUP => 1,
);
system(qq|cp -a $template_dir/* $dirname|) == 0
or die("Could not copy $template_dir/* to $dirname");
my $driver = Selenium::Remote::Driver->new(
browser_name => 'chrome',
extra_capabilities => {
args => ["user-data-dir=$dirname"],
},
);
我想配置chromium,以便在selenium会话中此设置为false
我尝试过但失败的事情:
我使用的是perl驱动程序库,它允许我传递一些将在会话创建期间使用的选项
我试图更改配置文件目录,但我的selenium服务器输出中出现以下内容:
14:33:53.312信息-执行:[新会话:{platform=ANY,acceptSslCerts=true,javascriptEnabled=true,browserName=chrome,proxy={proxyType=direct},chrome.switches=-user data dir=/path/to/profile/…,version=}]
我认为这种方法应该有效,但我只需要知道正确的参数名称
更改/etc/chromium/master\u首选项中的设置
[1] 铬版本31.0.1650.63 Debian
[2] Selenium独立版2.25.0
[3] Chromedriver版本2.6.232917我找到的解决方案使用chromeOptions.args功能来设置配置文件。我用正确的设置创建了一个配置文件模板。我将此配置文件用作模板 在概要文件模板目录中,有一个名为Default/Preferences的文件,其内容如下:
{
"profile": {
"block_third_party_cookies": false
}
}
perl测试文件如下所示:
{
...
"profile" : {
...
"block_third_party_cookies": false,
...
}
...
}
use Selenium::Remote::Driver;
use File::Temp 'tempdir';
my $template_dir = '/path/to/template/dir/';
my $dirname = tempdir(
'chrome_user_data_XXXXXX',
DIR => '/tmp',
CLEANUP => 1,
);
system(qq|cp -a $template_dir/* $dirname|) == 0
or die("Could not copy $template_dir/* to $dirname");
my $driver = Selenium::Remote::Driver->new(
browser_name => 'chrome',
extra_capabilities => {
args => ["user-data-dir=$dirname"],
},
);