未应用 Selenium 网格会话
Selenium grid sessions not applied
我在计算机上使用 Selenium stanalone + Chrome headless + PHP + UwAmp server 来解析一些数据(系统:WIN7_32bit、4GB 内存)。
我需要同时启动 22 Chrome 个会话,所以我使用具有以下设置的硒网格:
java -jar selenium-server-standalone-2.53.1.jar -role hub
java -jar selenium-server-standalone-2.53.1.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome,maxInstances=22,seleniumProtocol=WebDriver" -maxSession 22
我的问题是主要启动了 6 个会话(图片示例)...有时有 2 或 4 个活动会话。我究竟做错了什么?我试图在 php.ini 中进行更改,但没有成功。这些是设置:
EDIT2:由于在其他工作站(WIN10_64bit、Intel i7、16GB RAM)上也发生了同样的事情,我认为这个问题与 UwAmp 服务器设置或 selenium-server-standalone-2.53 有关.1.jar 或 Google Chrome.
浏览器连接限制 - 正是这个问题。
我正在使用 PHP(服务器端语言),我需要以某种方式执行我的 PHP 脚本。解决方案是一些本地服务器(如 uWamp)和一些在该服务器上打开脚本的 Web 浏览器。由于我需要启动 22 个脚本,同时我打开 22 个浏览器选项卡,地址如下:
http://localhost/selenium/PHPWebDriver/1.php
http://localhost/selenium/PHPWebDriver/2.php
....
http://localhost/selenium/PHPWebDriver/22.php
现在,Chrome限制具有相同域名的 HTTP 连接数。此限制在 HTTP 规范 (RFC2616) 中定义,大多数现代浏览器允许 每个域仅六个连接 (Opera、Safari、Chrome、Firefox...)!
因此,绕过浏览器限制的方法是:
- 如果合理 (Firefox),请更改浏览器限制,而不是 Chrome
- 下载浏览器源代码并重建它们(如 Chromium),
- 提供多个子域,
- 为每个脚本创建用户配置文件(Chrome 的参数:'--user-data-dir=')。
也许还有一些其他的解决办法,我不知道...
我决定继续选项 3,因为我无法更改 Chrome 中的限制。
解决方案:
1) 使用记事本
打开 C:\Windows\System32\drivers\etc\hosts
2) 将以下行添加到每个子域的主机文件的底部:
127.0.0.1 localhost
127.0.0.1 localhost2
127.0.0.1 localhost3
127.0.0.1 localhost4
(我必须添加 4 个子域,因为在每个子域上我只能执行 6 个脚本)
现在可以开始了:
http://localhost/selenium/PHPWebDriver/1.php
...
http://localhost/selenium/PHPWebDriver/6.php
http://localhost2/selenium/PHPWebDriver/7.php
...
http://localhost2/selenium/PHPWebDriver/13.php
http://localhost3/selenium/PHPWebDriver/14.php
...etc...
就是这样。请注意,在某些服务器上,您可能需要在 Apache httpd-vhosts.conf 中进行一些更改才能正常工作。
我在计算机上使用 Selenium stanalone + Chrome headless + PHP + UwAmp server 来解析一些数据(系统:WIN7_32bit、4GB 内存)。
我需要同时启动 22 Chrome 个会话,所以我使用具有以下设置的硒网格:
java -jar selenium-server-standalone-2.53.1.jar -role hub
java -jar selenium-server-standalone-2.53.1.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome,maxInstances=22,seleniumProtocol=WebDriver" -maxSession 22
我的问题是主要启动了 6 个会话(图片示例)...有时有 2 或 4 个活动会话。我究竟做错了什么?我试图在 php.ini 中进行更改,但没有成功。这些是设置:
EDIT2:由于在其他工作站(WIN10_64bit、Intel i7、16GB RAM)上也发生了同样的事情,我认为这个问题与 UwAmp 服务器设置或 selenium-server-standalone-2.53 有关.1.jar 或 Google Chrome.
浏览器连接限制 - 正是这个问题。
我正在使用 PHP(服务器端语言),我需要以某种方式执行我的 PHP 脚本。解决方案是一些本地服务器(如 uWamp)和一些在该服务器上打开脚本的 Web 浏览器。由于我需要启动 22 个脚本,同时我打开 22 个浏览器选项卡,地址如下:
http://localhost/selenium/PHPWebDriver/1.php
http://localhost/selenium/PHPWebDriver/2.php
....
http://localhost/selenium/PHPWebDriver/22.php
现在,Chrome限制具有相同域名的 HTTP 连接数。此限制在 HTTP 规范 (RFC2616) 中定义,大多数现代浏览器允许 每个域仅六个连接 (Opera、Safari、Chrome、Firefox...)!
因此,绕过浏览器限制的方法是:
- 如果合理 (Firefox),请更改浏览器限制,而不是 Chrome
- 下载浏览器源代码并重建它们(如 Chromium),
- 提供多个子域,
- 为每个脚本创建用户配置文件(Chrome 的参数:'--user-data-dir=')。
也许还有一些其他的解决办法,我不知道...
我决定继续选项 3,因为我无法更改 Chrome 中的限制。
解决方案:
1) 使用记事本
打开 C:\Windows\System32\drivers\etc\hosts2) 将以下行添加到每个子域的主机文件的底部:
127.0.0.1 localhost
127.0.0.1 localhost2
127.0.0.1 localhost3
127.0.0.1 localhost4
(我必须添加 4 个子域,因为在每个子域上我只能执行 6 个脚本)
现在可以开始了:
http://localhost/selenium/PHPWebDriver/1.php
...
http://localhost/selenium/PHPWebDriver/6.php
http://localhost2/selenium/PHPWebDriver/7.php
...
http://localhost2/selenium/PHPWebDriver/13.php
http://localhost3/selenium/PHPWebDriver/14.php
...etc...
就是这样。请注意,在某些服务器上,您可能需要在 Apache httpd-vhosts.conf 中进行一些更改才能正常工作。