未应用 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 中进行更改,但没有成功。这些是设置:

编辑:my php.ini file

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...)!

因此,绕过浏览器限制的方法是:

  1. 如果合理 (Firefox),请更改浏览器限制,而不是 Chrome
  2. 下载浏览器源代码并重建它们(如 Chromium),
  3. 提供多个子域,
  4. 为每个脚本创建用户配置文件(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 中进行一些更改才能正常工作。