我想运行一个Perl脚本,该脚本部署Selenium::Remote::Driver
以从严重依赖JavaScript的网站获取数据。 Perl脚本和Selenium WebDriver应该在不同的机器上运行(分别是客户端和服务器)。
我使用
在服务器上启动了Selenium WebDriver/usr/bin/xvfb-run -e /dev/stdout java -Dwebdriver.gecko.driver=/opt/gecko/geckodriver -jar /opt/selenium/selenium.jar
Xvfb已经启动。
WebDriver报告正确启动并显示在进程列表中
root 6830 6800 7 18:17 pts/0 00:00:01 java -Dwebdriver.gecko.driver=/opt/gecko/geckodriver -jar /opt/selenium/selenium.jar
该过程正在侦听端口4444
netstat -tulpn | grep 6830
tcp6 0 0 :::4444 :::* LISTEN 6830/java
然后我尝试将防火墙配置为根据this thread
接受来自客户端计算机的连接iptables -A INPUT -p tcp --dport 4444 -s <client-ip> -j ACCEPT
iptables -A INPUT -p tcp --dport 4444 -j DROP
Perl脚本
use Selenium::Remote::Driver;;
$sel = Selenium::Remote::Driver->new;
$sel->get("http://example.com");
print $sel->get_page_source();
$sel->quit;
在服务器上本地运行时,它可以正常工作,并返回所需的数据。
但是在客户端计算机上运行时,使用修改后的构造函数
$sel = Selenium::Remote::Driver->new( remote_server_addr => '<server-ip>');
它拒绝工作
Selenium服务器未在/Selenium/Remote/Driver.pm第401行返回正确的状态。
在客户端上发出telnet命令以检查服务器的WebDriver端口
telnet <server-ip> 4444
Trying <server-ip>...
表示端口未打开。
我错过了什么?
ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:5015907 errors:0 dropped:0 overruns:0 frame:0
TX packets:5015907 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1434694690 (1.3 GiB) TX bytes:1434694690 (1.3 GiB)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
inet6 addr: ::2/128 Scope:Compat
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:17549498 errors:0 dropped:0 overruns:0 frame:0
TX packets:18398702 errors:0 dropped:111 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11881977702 (11.0 GiB) TX bytes:4577577462 (4.2 GiB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:178.254.xxx.xxx P-t-P:178.254.xxx.xxx Bcast:178.254.xxx.xxx Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
venet0:1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:178.254.xxx.xxx P-t-P:178.254.xxx.xxx Bcast:178.254.xxx.xxx Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1