问题标签 [selenium-hub]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1015 浏览

selenium - 使用 SSL 运行 selenium 服务器

请注意,我的问题不是关于测试 ssl/tls 安全的 http 链接,也不是关于让 Webdriver 接受某些证书。

我的问题是关于如何使 selenium 独立服务器的嵌入式 Jetty 提供安全的 https 连接。

在 3.4.0 的源代码中,我可以看到这一部分:

从日志中我可以看到此代码已到达,但连接不安全(应该如何,甚至没有涉及证书):

由于公司安全治理,我们被迫提供安全的所有服务。这意味着我至少需要保护 selenium 网格的集线器,节点也将是完美的。我知道我可以做一些隧道、代理或 ipsec,但如果可能的话,我想避免这种复杂性。

我什至尝试过如果 Jetty 以某种方式“自动”知道在使用 ssl 时做出相应的响应,但正如预期的那样,这会失败: 由于缺少 ssl/tls 支持而导致 curl 失败

0 投票
1 回答
18 浏览

selenium - 强制不在网格中使用 Selenium RC

我将提供一个 Selenium 网格,并希望强制我们的开发人员不再使用 RC API。据我所知,RC 已被弃用,在客户端您需要导入旧代码:https ://seleniumhq.github.io/selenium/docs/api/java/deprecated-list.html

但是如果开发人员使用旧的 RC 调用呢?我发现无法在集线器上禁用对 RC 的支持。我在 Selenium 3.4.0 上进行了尝试

0 投票
0 回答
405 浏览

linux - Docker 中的 Selenium 独立服务器 - TimeoutException

我试图在容器中执行WebDriver 3.5基于测试。我用这个命令来启动必要的容器:ChromeDriver 2.31Selenium Docker

我用来RemoteWebDriver在远程主机上执行测试套件。它失败并显示以下日志:

org.openqa.selenium.TimeoutException:超时(会话信息:chrome=61.0.3163.79)(驱动程序信息:chromedriver=2.31.488763,平台=Linux 4.10.0-33-generic x86_64)(警告:服务器没有提供任何堆栈跟踪信息)构建信息:版本:'3.5.2',修订:'10229a9',时间:'2017-08-21T17:29:55.15Z' 驱动程序信息:org.openqa.selenium.remote.RemoteWebDriver Capabilities [{applicationCacheEnabled =false,rotatable=false,mobileEmulationEnabled=false,networkConnectionEnabled=false,chrome={chromedriverVersion=2.31.488763,userDataDir=/tmp/.org.chromium.Chromium.IAkqFG},takeHeapSnapshot=true,pageLoadStrategy=normal,unhandledPromptBehavior=, databaseEnabled=false,handlesAlerts=true,hasTouchScreen=false,版本=61.0.3163.79,平台=LINUX,browserConnectionEnabled=false,nativeEvents=true,acceptSslCerts=true,locationContextEnabled=true,webStorageEnabled=true,browserName=chrome,takeScreenshot=true,javascriptEnabled=true,cssSelectorsEnabled=true,setWindowRect=true,unexpectedAlertBehaviour=}]

我检查了http://:4444/wd/hub/static/resource/hub.html上的网络面板,发现有一个 Chrome 会话,但是当我尝试截屏时,我得到一个空白屏幕。尝试访问此站点时测试失败。该站点使用 invalid SSL,因此HTTPS连接不安全,但我使用以下命令忽略证书错误。它正在本地机器上工作。

0 投票
0 回答
137 浏览

selenium - 使用无法从我的计算机访问的 docker Selenium 节点

使用 Docker 我运行 Selenium Hub 并创建另外两个容器并注册注释。

这是日志

现在我想运行我的测试用例 http://172.17.0.3:5555http://172.17.0.3:5555

但不幸的是,我可以访问这两个 ip,我使用的是 windows 10,有没有人可以帮助我解决这个问题

0 投票
0 回答
181 浏览

selenium - 启动集线器 docker 映像时容器内的用户权限错误

当我运行命令时 docker run -d -p 4444:4444 --name selenium-hub selenium/hub

docker:来自守护进程的错误响应:驱动程序在端点 selenium-hub 上编程外部连接失败(33994db81ec69319f17c2704ba8e7fe8c7544ce33f370ae4af4934db485237f5):启动用户级代理时出错:绑定 0.0.0.0:4444:意外错误权限被拒绝。

它给了我错误。有什么建议可以解决这个权限问题

0 投票
1 回答
787 浏览

selenium - Selenium Grid——集线器和节点性能问题

我正在尝试运行 Selenium Grid。

目前,我正在使用 v3.8.1,1 个网络上的一个集线器和 20 多个不同网络的节点注册到该 Selenium 集线器。

当集线器和节点在部署应用程序的同一台机器上创建时,它的执行速度很快。在其他远程机器上创建的节点相对较慢

当我们尝试通过传递 applicationName 而不是 HUB 随机选择节点来访问特定节点时,速度很慢。

更多信息: Windows 服务器 2008、Ruby gem - selenium-webdriver-2.53.4、selenium-server-standalone-3.8.1、Java 8。

根据https://github.com/SeleniumHQ/selenium/issues/1565尝试了 Selenium Grid 版本 - 2.48、2.49、2.52、2.53 和 3.8.1 。

对此的任何帮助表示赞赏。谢谢你。

0 投票
1 回答
159 浏览

java - 在 selenium 处理程序 java 中单击事件后获取旧 html

我在交互式硒中创建了一个自定义处理程序,如下所示

问题是有时我得到了整个数据(包括点击事件后的数据),有时它没有得到动态数据。

注意:我可以在浏览器中看到点击事件。我正在使用以下内容:

  1. 火狐 61
  2. 硒 3.13
  3. 阿帕奇纳奇 1.14
0 投票
1 回答
209 浏览

selenium - Jenkins selenium docker 和应用程序文件

我有一个 docker hub 和一个 docker 节点启动并运行。我还有一个 docker 容器,其中包括我的应用程序启动和运行,其设置与我的 pc 相同。我收到以下错误。[ConnectionException] 无法在http://ip:4444/wd/hub连接到 Webdriver 。请确保 Selenium Server 或 PhantomJS 正在运行。IP 是正确的,因为我在那里看到了应有的硒网格。这可能是问题所在。当我进入 jenkins 中的容器时,它也会运行我的测试。

0 投票
1 回答
19 浏览

java - 如何允许站点获取访问其 URL 的机器的 IP

不要对我知道在堆栈溢出中很常见的标题感到困惑,但我的问题是不同的。

要求:我在我的框架中实现 Selenium 网格,我需要为用户提供一个选项,让他们选择他们想要运行测试的机器/节点。我设计了一个托管在机器 1 上的基于 UI 的框架,提供机器/节点的下拉列表以从中选择值。根据选择的值,代码将根据机器 IP 创建一个 nodeURL,并在该机器上成功运行测试。下面是代码

同样,我还需要提供用户机器的选项,即用户拥有哪台机器,他/她也应该能够在该机器上运行他们的测试。所以我在下拉列表中添加了我的机器选项,并编写了下面提到的代码来动态获取用户机器的 IP 地址。

问题:现在我面临的问题是,每当用户选择我的机器时,代码都会获取机器 1 的 IP 地址(当前托管框架的位置)并在那里而不是在用户的机器上运行测试。我已经使用 tomcat 在机器 1 中部署了框架之战并从我的机器访问 URL,以测试但不确定为什么它每次都获取机器 1 的 IP 地址。ipAddress.getHostAddress()是否仅获取主机服务器的 IP 地址?无论如何要从我们尝试访问 URL 的地方获取用户机器的 IP 地址,以便用户选择我的机器选项,代码应该获取他们的机器 IP 并在那里运行测试。将感谢您的帮助。

谢谢,哈桑

0 投票
0 回答
92 浏览

selenium - Selenium 节点未回复 /status HTTP-Request

所以我有一个硒集线器和一些节点。ESXi 上的两个 Windows 10 虚拟机(A和)。B

B克隆自A,因此除了 IP 和主机名外,它们的配置相同。 A有一个节点,工作正常。 B有一个节点,但是集线器无法获取它的状态,所以我首先使用了一个固定端口并重新启动了节点,但我无法通过http://win10-b:16050/status.

我允许 Java 通过防火墙访问,甚至暂时禁用了两个防火墙(集线器和节点),但无济于事。

这是节点:

这是集线器,拼命地试图保持连接:

任何提示我可能在这里遗漏的内容,总共 10 个节点,这是唯一一个有问题的节点(不过,除了AWindows 7 之外的其他节点)。