与许多人一样,我们通过以下命令启动selenium服务器:
java -jar selenium-server-standalone-2.21.0.jar
我们发现这会在0.0.0.0:4444
上打开seleniumStarted SocketListener on 0.0.0.0:4444
[USER @ BOX ~]# netstat -na | grep LISTEN | grep 4444
tcp 0 0 :::4444 :::* LISTEN
有没有办法将selenium绑定到特定的ip(localhost)?
感谢。
答案 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地址。