在远程独立服务器上运行Selenium测试时出现WebDriver异常:org.openqa.selenium.WebDriverException:无法解析远程响应

问题描述 投票:0回答:1

我有两台个人笔记本电脑。笔记本电脑A是我通过Eclipse IDE运行Selenium测试的客户端。测试将在运行独立服务器的笔记本电脑B上执行。两台笔记本电脑均运行Windows 10

要在笔记本电脑B上运行Selenium Standalone服务器,请使用以下命令:-

java -jar selenium-server-standalone-3.141.59.jar -role standalone

我执行的配置步骤:-

  1. 在笔记本电脑B上,硒服务器jar和webdriver [geckodriver]保留在同一文件夹中
  2. 我已经在笔记本电脑B的PATH系统环境变量中包含了该文件夹的路径
  3. 两台笔记本电脑都可以通过我的家庭wifi-fi相互ping通>
  4. 对于笔记本电脑B:

IPv4 Address: 192.168.1.9
Subnet Mask: 255.255.255.0
Default Gateway: 192.168.1.1

对于笔记本电脑A:

IPv4 Address: 192.168.1.5
Subnet Mask: 255.255.255.0
Default Gateway: 192.168.1.1
  1. 一旦在笔记本电脑B上启动独立服务器,我就可以从浏览器从笔记本电脑A访问独立服务器的控制台页面。像这样:-

http://192.168.1.9:5555/console

  1. 我使用TestNG从Eclipse运行我的Selenium测试。 Test类具有@BeforeClass批注的方法,如下所示:-
  2.     @BeforeClass
        public void beforeClass() throws MalformedURLException, InterruptedException {
        FirefoxOptions firefoxOptions = new FirefoxOptions(); 
        firefoxOptions.setCapability("browserName", "firefox");
        firefoxOptions.setCapability("platformName", "WIN10");
        firefoxOptions.setCapability("marionette", true);
        webdriver = new RemoteWebDriver(new URL("http://192.168.1.9:5555"), firefoxOptions);
         ...
         ..
         .
    }
    

运行Selenium Test时出现以下错误[错误响应中返回了独立服务器的控制台HTML页面]:-

FAILED CONFIGURATION: @BeforeClass beforeClass 
org.openqa.selenium.WebDriverException: Unable to parse remote response: <!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8">
...

注:-

尝试以下不同的浏览器/ webdriver组合时出现相同的错误:-

  1. Chrome浏览器版本81.x.x
  2. FireFox浏览器75.x版
  3. ChromeDriver版本76.x,80.x,81.x,83.x
  4. GeckoDriver版本0.23.0,0.26.0
  5. 使用ChromeDriver时,请确保已做好以下各项:-

  6. a。在笔记本电脑B上,硒服务器jar和webdriver [chromedriver]保留在同一文件夹中

    b。我已经在笔记本电脑B的PATH系统环境变量中包含了该文件夹的路径

    c.TestNG注释的测试类:-

     @BeforeClass
     public void beforeClass() throws MalformedURLException, InterruptedException {
     ChromeOptions chromeOptions = new ChromeOptions();
     chromeOptions.setCapability("browserName", "chrome");
     chromeOptions.setCapability("browserVersion", "81.x.x"); //76.x,80.x,81.x,83.x
     chromeOptions.setCapability("platformName", "WIN10");
     webdriver = new RemoteWebDriver(new URL("http://192.168.1.9:5555"), chromeOptions);
     }
    

最终结果是未在笔记本电脑B上调用浏览器,并且测试未运行

我搜索了网络(包括Stackoverflow),但找不到解决此错误的方法。任何输入将不胜感激

我有两台个人笔记本电脑。笔记本电脑A是我通过Eclipse IDE运行Selenium测试的客户端。测试将在运行独立服务器的笔记本电脑B上执行。两台笔记本电脑...

selenium selenium-webdriver selenium-grid
1个回答
0
投票

似乎您使用了错误的远程URL。我们试试吧:http://192.168.1.9:5555/wd/hub

© www.soinside.com 2019 - 2024. All rights reserved.