将硒与特定IP结合 - 可能吗?

时间:2012-05-15 19:51:18

标签: selenium ip bind ip-address

与许多人一样,我们通过以下命令启动selenium服务器:

java -jar selenium-server-standalone-2.21.0.jar

我们发现这会在0.0.0.0:4444

上打开selenium
Started SocketListener on 0.0.0.0:4444

[USER @ BOX ~]# netstat -na | grep LISTEN | grep 4444
tcp        0      0 :::4444                     :::*                        LISTEN

有没有办法将selenium绑定到特定的ip(localhost)?

感谢。

5 个答案:

答案 0 :(得分:8)

使用以下命令

    java -jar selenium-server-standalone-2.21.0.jar -host 192.168.1.100

其中192.168.1.100是主机的IP地址

答案 1 :(得分:4)

这不是处理这个问题的正确方法,而是一种方式

所以这样做只是从任何外部源丢弃端口4444上的任何连接。您可以先转到第

页进行测试

像这样启动服务器

java -jar selenium-server-standalone-2.39.0.jar -host 127.0.0.1 -port 4444 

验证一切正常

http://yourexternalip:4444/wd/hub/

页面将加载。如果您的服务器运行正常。

发送命令

sudo iptables -A INPUT -p tcp --dport 4444 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 4444 -j DROP

然后重新加载页面。将无法再访问该网页(因为您正在从外部IP访问)

您的新可访问网址现在是

http://127.0.0.1:4444/wd/hub/

应该正常工作

同样,这更像是对更大问题的创可贴,并且这样做不会强迫您更改任何源代码并仍保持安全系统

答案 2 :(得分:2)

如果你的版本中有这个修补程序,可以通过添加“-host 192.168.1.100”参数来实现:

https://code.google.com/p/selenium/source/detail?r=71c5e231f442

(在撰写本文时,该修补程序未包含在可用的二进制文件中,因此您必须从源代码构建自己的二进制文件。)

答案 3 :(得分:0)

您可以在远程计算机上运行java -jar selenium-server-standalone-2.21.0.jar

然后在你的selenium脚本中定义你的webdriver以远程运行。

在红宝石中你可以这样做

@driver = Selenium::WebDriver.for(:remote, :url => "http://specific_ip_of_remotemachine:4444", :desired_capabilities => firefox)

这就是你要找的东西吗?

答案 4 :(得分:0)

我也遇到了与Hub相同的问题。因此,当我尝试启动集线器时,我的集线器指向其他IP地址,但是当我检查我的IP地址时,我的本地系统上的情况有所不同。为了克服这个问题,我只是尝试了以下代码,它可以工作。

java -jar selenium-server-standalone-3.12.0.jar -host 192.XXX.X.XX -role hub

我的集线器已注册到我的本地计算机IP地址。