首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过外部代理服务器发送无头Selenium RC测试?

问如何通过外部代理服务器发送无头Selenium RC测试?
EN

Stack Overflow用户
提问于 2011-06-15 23:13:10
回答 2查看 1.3K关注 0票数 2

我需要在一个无头Ubuntu服务器上使用Selenium RC来对一个网站运行测试,该网站使用一个外部代理服务器来模拟一个不同国家的用户。

为了测试这个过程,我创建了一个非常简单的PHPUnit测试脚本,它的基本功能是:

代码语言:javascript
复制
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://www.ipchicken.com/");
$this->open("/");
$this->assertTrue($this->isTextPresent(<proxy ip>));

我使用以下代理服务器指令启动Selenium RC (代理上没有身份验证):

代码语言:javascript
复制
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地址。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-16 16:56:05

我遇到了同样的问题,试图让代理在Ubuntu系统上工作,但无法获得-Dhttp.proxyHost等。设置才能工作。我的解决方案是先导出http_proxy,然后再执行java命令-就像您对显示所做的那样。

代码语言:javascript
复制
export http_proxy = http://username:password@host:port

更新:由于您使用的是火狐,您还需要在火狐中设置适当的代理设置。(你在评论中提到的挂起是firefox无法通过代理)。您需要使用以下命令运行firefox profilemanager

代码语言:javascript
复制
firefox -ProfileManager

然后创建一个新的配置文件。为概要文件的路径创建一个新目录,因为它将在该位置放置大量文件。在该配置文件中创建适当的代理设置。现在可以对selenium rc使用firefoxProfileTemplate选项:

代码语言:javascript
复制
 java -jar ..... -firefoxProfileTemplate /path/to/your/new/profile

请注意,您只需要运行配置文件管理器一次,因此此后您将能够运行headless。

票数 0
EN

Stack Overflow用户

发布于 2011-06-22 20:33:00

我将简单地解释一下使用Selenium Grid

火狐

  • 首先在Linux上使用Xorg:96 -ac启动显示,现在导出DISPLAY=96.

  • start

  • 使用Selenium网格启动selenium Port。

上述步骤应该在Linux服务器上完成。

  1. 在linux上启动selenium服务器之前,在您的机器上启动集线器。
  2. 现在执行脚本,它将转到linux上的活动端口。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6360005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档