16

像许多人一样,我们通过以下命令启动 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

有什么方法可以将硒绑定到特定的 IP(本地主机)?

谢谢。

4

5 回答 5

9

使用以下命令

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

其中 192.168.1.100 是主机的 IP 地址

于 2012-05-16T01:11:14.810 回答
5

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

所以这将做的只是从任何外部源断开端口 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 访问)

您的新可访问 URL 现在是

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

这应该工作

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

于 2014-02-15T06:17:09.240 回答
2

这可以通过添加“-host 192.168.1.100”参数来实现,前提是您的版本中有此修复:

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

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

于 2014-02-10T13:02:05.443 回答
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)

这是你想要的?

于 2012-05-15T20:48:07.663 回答
0

我在 Hub 上也遇到了同样的问题。因此,当我尝试启动集线器时,我的集线器指向其他 IP 地址,但是当我检查我的 IP 地址时,它在我的本地系统上有所不同。为了克服这个问题,我刚刚尝试了以下代码并且它有效。

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

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

于 2018-05-24T09:53:57.367 回答