我需要在一个无头Ubuntu服务器上使用Selenium RC来对一个网站运行测试,该网站使用一个外部代理服务器来模拟一个不同国家的用户。
为了测试这个过程,我创建了一个非常简单的PHPUnit测试脚本,它的基本功能是:
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://www.ipchicken.com/");
$this->open("/");
$this->assertTrue($this->isTextPresent(<proxy ip>));我使用以下代理服务器指令启动Selenium RC (代理上没有身份验证):
export DISPLAY=":99" && java -Dhttp.proxyHost=<proxy ip> -Dhttp.proxyPort=<proxy port> -jar /var/lib/selenium/selenium-server.jar -avoidProxy但是我的测试脚本没有通过断言。如果我将我的Selenium服务器IP地址的测试更改为assert,则断言通过,这使我觉得Selenium将"open“请求直接发送到ipchicken.com,而不是通过代理服务器发送。
selenium服务器可以访问代理服务器--我已经用一个简单的PHP Curl脚本对此进行了测试。如果我通过代理服务器使用Curl请求ipchicken.com,它会很好地返回代理服务器的IP地址。
发布于 2011-06-16 16:56:05
我遇到了同样的问题,试图让代理在Ubuntu系统上工作,但无法获得-Dhttp.proxyHost等。设置才能工作。我的解决方案是先导出http_proxy,然后再执行java命令-就像您对显示所做的那样。
export http_proxy = http://username:password@host:port更新:由于您使用的是火狐,您还需要在火狐中设置适当的代理设置。(你在评论中提到的挂起是firefox无法通过代理)。您需要使用以下命令运行firefox profilemanager
firefox -ProfileManager然后创建一个新的配置文件。为概要文件的路径创建一个新目录,因为它将在该位置放置大量文件。在该配置文件中创建适当的代理设置。现在可以对selenium rc使用firefoxProfileTemplate选项:
java -jar ..... -firefoxProfileTemplate /path/to/your/new/profile请注意,您只需要运行配置文件管理器一次,因此此后您将能够运行headless。
发布于 2011-06-22 20:33:00
我将简单地解释一下使用Selenium Grid
火狐
上述步骤应该在Linux服务器上完成。
谢谢
https://stackoverflow.com/questions/6360005
复制相似问题