当前位置: 首页 > 知识库问答 >
问题:

未应用Selenium网格会话

南宫阳冰
2023-03-14

我在我的电脑上使用Selenium stanalone+Chrome headless+PHP+UwAmp服务器来解析一些数据(系统:WIN7_32bit,4GB RAM)。

我需要同时启动22个Chrome会话,所以我使用selenium grid进行以下设置:

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中进行更改,但没有成功。以下是设置:

编辑:我的php.ini文件

编辑2:由于同样的情况发生在其他工作站上(WIN10_64bit、Intel i7、16GB RAM),我认为这个问题与UwAmp服务器设置、或Selenium-Server-Standalone-2.53.1.jar或Google Chrome有关。

共有1个答案

谭嘉歆
2023-03-14

浏览器连接限制--这正是问题所在。

我正在使用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. 如果plaussible(Firefox)而不是Chrome更改浏览器限制
  2. 下载浏览器源代码并重新生成它们(如Chromium),
  3. 提供多个子域,
  4. 为每个脚本创建用户配置文件(chrome的参数:'--user-data-dir=')。

也许还有其他的解决办法,我不知道...

1)使用记事本打开C:\Windows\System32\Drivers\etc\主机

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中进行一些更改,这样才能工作。

 类似资料:
  • 在运行测试时,我需要长时间的延迟(约40秒)。 我看到了,在那段时间里,Selenium会话被删除了。 请帮助:如何配置会话超时以增加? 在Selenium节点日志中开始延迟后的30秒内,我看到了以下内容: 信息org.openqa.selenium.remote.server。DriverServlet-由于客户端超时,会话7f5fffec-4882-4c4c-b091-c780c66d379d

  • 从C#客户机,我的驱动变量在2秒后返回“Selenium Grid会话终止,因为SO#U超时”。我正在寻找一种方法来增加SE Grid server的超时时间,因为看起来我需要增加Selenium节点的超时时间。 感谢您帮助解决此问题。

  • Node2:Win10系统 开始于:java-dwebdriver.chrome.driver=chromedriver.exe-jar selenium-server-standalone-2.52.0.jar-role webdriver-hub http://192.168.1.103:4444/grid/register-nodeConfig node2.json json的内容如下: n

  • 问题内容: 我正在设置Selenium Grid服务器,并且已经在本地计算机上成功完成了工作,我想知道如何提供主机名,因此如果其他测试人员想要注册到集线器,他们应该能够做到这一点,这就是我所做的至今: 在我的本地计算机上(假设我将允许其他测试人员在此处注册该节点) 在本地计算机上启动集线器: 启动节点 我查看中心的状态:localhost:4444 / grid / console 现在,我的问题

  • 我有一个用Java编写的应用程序,可以在特定网站上创建电子邮件帐户。由于某些原因,我需要在不同的windows用户帐户下运行程序的每个迭代。 我正在使用SeleniumGrid(RemoteWebDriver)从集线器服务器连接到远程服务器(Grid)。 假设我在远程windows服务器上设置了多个windows用户帐户(如“account639”、“account729”、“account889

  • 我想用配置在多台机器中的多个Firefox浏览器执行并行测试。 提前道谢。 Firefox版本:60.0.1 Selenium Firefox驱动程序:3.7.1 Geckdriver版本:v0.19.0 我在不同bat文件中设置了网格和节点: HUb设置: java-jar selenium-server-standalone-3.1.0.jar-port 4444-role HUb 节点设置: