首页 > 解决方案 > Selenium 4 Devtools - 无法映射结果和未知驱动程序和无法使私有 java.lang.Void() 可访问

问题描述

我想在 selenium 4 中使用 devtools。虽然它一直有关于地图错误的错误:

WARNING: Unable to map result for Target.setAutoAttach
java.lang.reflect.InaccessibleObjectException: Unable to make private java.lang.Void() accessible: module java.base does not "opens java.lang" to unnamed module @6b2fad11

WARNING: Unable to map result for Log.clear

WARNING: Unable to process: {"id":3,"result":{},"sessionId":"mySessionID here"}
org.openqa.selenium.json.JsonException: Expected to read a NAME but instead have: START_MAP. Last 17 characters read: {"id":3,"result":
Build info: version: '4.0.0-beta-4', revision: '29f46d02dd'
System info: host: 'myHost here', ip: 'my IP here', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '16.0.1'
**Driver info: driver.version: unknown**

我在用:

  1. 智能
  2. 铬 90
  3. 铬驱动程序 90
  4. 硒 4.0.0-beta-4
  5. 番石榴 30.1.1
  6. 爪哇 16

我的依赖:

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
            <scope>test</scope>
        </dependency>
 <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.0.0-beta-4</version>
        </dependency>


        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>30.1.1-jre</version>
        </dependency>

我不确定为什么会发生地图错误并且我的驱动程序信息未知。有人有什么想法吗?谢谢!

我的代码:

public class TestOne {

    public TestOne() throws IOException {
    }

    public static void main(String[] args) throws IOException, AWTException {
        System.setProperty("webdriver.chrome.driver", "C:/Users/myUserName/Desktop/Documents/Webdriver/chromedriver.exe");
        ChromeDriver driver = new ChromeDriver();
        DevTools devTools = driver.getDevTools();
        driver.get("http://www.google.com");
        driver.getDevTools().createSession();
        enableNetworkOffline(devTools,driver);
    }

    public static void enableNetworkOffline(DevTools devTools, ChromeDriver driver) {
        devTools.send(Network.enable(Optional.of(100000000), Optional.empty(), Optional.empty()));
        devTools.addListener(loadingFailed(), loadingFailed -> assertEquals(loadingFailed.getErrorText(), "testing"));
        driver.get("http://www.yahoo.com");
    }
}

标签: automationselenium-chromedriverdevtoolsselenium4

解决方案


推荐阅读