如何使Selenium使用localhost代理

时间:2013-11-13 10:08:30

标签: firefox selenium proxy

我有一个基于perl的selenium脚本,声明如下:

$sel = Test::WWW::Selenium->new( host => "localhost", 
                            port => 4444, 
                            browser => "*chrome", 
                            browser_url => "https://$ARGV[0]/" );

这会引发Firefox浏览器。我希望当Firefox浏览器被抛出时,它被配置为使用我的代理,即127.0.0.1:8080,我已经启动了代理服务。如何在不对上述代码进行任何更改的情况下完成此操作?

1 个答案:

答案 0 :(得分:0)

对于Firefox,您需要create a profile来获取Selenium。使用-ProfileManager -no-remote启动Firefox,以便能够选择此配置文件。相应地配置它。

使用Selenium webdriver启动Firefox时,您可以指定要用于webdriver.firefox.profile的配置文件

我找不到使用Perl API实现相同的解决方案。您可能必须破解源才能指定配置​​文件。只需将-P加上配置文件的名称添加到浏览器进程的命令行选项中。

或者,您可以在运行测试之前在路径变量中插入脚本。例如,在Unix上:

#!/bin/bash

/usr/bin/firefox -P selenium

将其保存在$HOME/selenium/bin/firefox中,使这个新文件可执行,并且:

export PATH="$HOME/selenium/bin/firefox;$PATH"

测试不会认为脚本是firefox可执行文件并运行它。然后,该脚本将使用正确的参数运行Firefox。