Selenium RemoteWebDriver UnreachableBrowserException 与 Edge

2023-12-10

您好,我一直在使用 Maven 和 TestNG 框架开发一个副项目。到目前为止,我的代码与 WebDriver 实例(Chrome、Firefox、Edge)配合良好,但在尝试使用 Edge 设置 RemoteWebDriver 时不断收到错误。以下是我如何设置我的 Driver 类(实现 WebDriver 类):(显示通过 RemoteWebDriver 初始化 Driver 的构造函数部分:

Edits:

 public Driver (String browserName) {
    this.browserName = browserName;
    ....

    if(browserName.equalsIgnoreCase("edge")) {
        System.setProperty("webdriver.edge.driver","./resources/webdrivers/MicrosoftWebDriver.exe");
        DesiredCapabilities browser = DesiredCapabilities.edge();
        browser.setPlatform(Platform.WIN10);
        try {
            this.driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), browser);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        js = (JavascriptExecutor) driver;
        bugCapture = (TakesScreenshot)driver;
        testFailDir = newFailCapDir();
    }

当使用 maven 运行代码并设置 -Browser=edge 时,这是我收到的错误:

  org.openqa.selenium.remote.UnreachableBrowserException:
  Could not start a new session. Possible causes are invalid address of the 
  remote server or browser start-up failure.
  Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-
  06T21:01:39.354Z'
  System info: host: 'LAPTOP-L1BFDSGL', ip: '10.0.0.11', os.name: 'Windows 
  10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_162'
  Driver info: driver.version: Driver
  Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 
  localhost:17556 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: 
  Connection refused: connect
  Caused by: java.net.ConnectException: Connection refused: connect

经过一番研究,我认为问题是我没有 Selenium-server-standalone jar 文件,它似乎调用了 Selenium jar 文件的 Maven 依赖项。我已经浏览过这个网站和其他网站,以找到我的问题的解决方案,但我仍然遇到同样的错误。是否有我丢失的文件或者 RemoteWebDriver 可以与 Edge 驱动程序一起应用吗?

在这种情况下任何建议都会有帮助。 谢谢。

更新 @DebanjanB 的请求,我使用的集线器是在声明期间。经过一番研究后,我没有意识到我不需要激活集线器或节点。 (可能是为什么我遇到无法访问的异​​常。)我还检查了我是否可以设置集线器和节点(我使用端口 -5555 作为节点角色)。我在单独的 cmd 提示符中用于 Hub 和 Node 的命令:

java -jar selenium-server-standalone-3.10.0.jar -role hub 

java -jar selenium-server-standalone-3.10.0.jar -role node -hub 
http://localhost:4444/grid/register -port 5555

我还更新了我的 Maven 依赖项以包含到独立的 Selenium 服务器。 我为测试运行的 Maven 是:

mvn test -Dbrowser=edge -Dgroups=<specified group> 

当我运行集线器时,我收到以下异常错误:

  org.openqa.selenium.remote.UnreachableBrowserException:
  Could not start a new session. Possible causes are invalid address of the 
  remote server or browser start-up failure.
  Build info: version: '3.10.0', revision: '176b4a9', time: '2018-03-
  02T19:03:16.397Z'
  System info: host: 'LAPTOP-L1BFDSGL', ip: '10.0.0.11', os.name: 'Windows 
  10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_162'
  Driver info: driver.version: Driver
 Caused by: java.net.ConnectException: Failed to connect to /10.0.0.11:4444
 Caused by: java.net.ConnectException: Connection refused: connect

在失败之前我看到了这样的消息: 2018 年 3 月 9 日下午 7:05:25 org.openqa.selenium.remote.DesiredCapability 边缘 信息:使用new EdgeOptions()优先于DesiredCapabilities.edge()//有关测试用例失败并跳过的错误

@DebanjanB 如果您需要更多说明,请告诉我。

更新: 我设法使用 Edge 让我的远程 Webdriver 正常工作。我不得不提到在设置集线器后注册节点时我将要使用的 Dwebdriver。

注册我的节点:

java -Dwebdriver.edge.driver=MicrosoftWebDriver.exe -jar selenium-server-standalone-3.10.0.jar -role 节点 -hubhttp://localhost:4444/grid/register-端口5555

(我还为路径添加了物理驱动程序,因为在本地驱动程序上运行时,我将它们放置在不同的路径中。)

在我的 Driver 类中(我必须将 URL 设置为节点而不是集线器):

System.setProperty("webdriver.edge.driver","./resources/webdrivers/MicrosoftWebDriver.exe");
                DesiredCapabilities browser = DesiredCapabilities.edge();
                try {
                    driver = new RemoteWebDriver(new URL("http://10.0.0.19:5555/wd/hub"), browser);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }

现在,当我运行 Edge 命令时没有问题。 :)


该错误给了我们一些提示,如下所示:

org.openqa.selenium.remote.UnreachableBrowserException:
  Could not start a new session. Possible causes are invalid address of the 
  remote server or browser start-up failure.

该错误似乎来自该行:

browser.setBrowserName(DesiredCapabilities.edge().getBrowserName());

根据您的代码块,browser是一个实例所需能力类并根据文档设置浏览器名称()方法它定义为:

public void setBrowserName(java.lang.String browserName)

The edge()方法来自所需能力类帮助我们铸造所需能力对象但不包含任何方法,例如getBrowserName()像这样。因此以下表达式会引发错误:

DesiredCapabilities.edge().getBrowserName()

根据当前版本硒 v3.10.0,铸造所需能力对象与任一chrome(), firefox(), internetExplorer() or edge()会自动设置浏览器名称并且不需要明确提及。


Update

您需要发送正确的命令来启动硒网格中心 and 硒网格节点.

  • 对于您看到的错误org.openqa.selenium.remote.UnreachableBrowserException:无法启动新会话检查讨论RemoteWebDriver 抛出“org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话”

  • 有关完整的工作流程,请查看讨论如果指定直接节点 ip,则 IE11 测试运行,但在指定 grid hub url 时失败

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium RemoteWebDriver UnreachableBrowserException 与 Edge 的相关文章

  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • 缺少依赖项 hive-builtins 会导致 Oozie 构建失败,错误代码为 410

    我尝试从源代码构建 oozie 但安装失败 我想安装 oozie 并热切地等待使用它 我在这个阶段失败了 当我从 oozie 3 3 3 目录给出 cmd 时 bin mkdistro sh DskipTests 我收到这个错误 INFO
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐