线程 "main" org.openqa.selenium.WebDriverException 中的异常:返回值无法转换为 WebElement:{stacktrace=Backtrace:

Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {stacktrace=Backtrace:

我在简单程序中遇到错误,之前它运行良好,现在由于某种原因我无法执行它。 我正在使用硒 3.0.1 Chrome 驱动程序 93.0.4 请检查我的代码和下面的错误。
如果有人能帮助我,我将不胜感激

我的代码:

public class MouseOverDemo {

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\SeleniumJars\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        // JavascriptExecutor js = (JavascriptExecutor)driver;
        //driver.get("http://demo.guru99.com/test/drag_drop.html");
        driver.get("https://jqueryui.com/resizable/");
        Actions action = new Actions(driver);

        WebElement resize = driver.findElement(By.cssSelector("body.jquery-ui.page.page-id-43.page-template-default.page-slug-resizable.single-author.singular:nth-child(2) div:nth-child(2) div.clearfix.row:nth-child(3) div.content-right.twelve.columns div:nth-child(1) > iframe.demo-frame:nth-child(5)"));
        driver.switchTo().frame(resize);
        WebElement resize1 = driver.findElement(By.id("resizable"));
        action.moveToElement(resize1, 2500, 2500).build().perform();
        System.out.println("Resize is done");
    
    }

错误:

Starting ChromeDriver 93.0.4577.63 (ff5c0da2ec0adeaed5550e6c7e98417dac77d98a-refs/branch-heads/4577@{#1135}) on port 40273
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Nov. 11, 2021 3:43:35 P.M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Nov. 11, 2021 3:43:36 P.M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Nov. 11, 2021 3:43:36 P.M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {stacktrace=Backtrace:
    Ordinal0 [0x003CD403+2479107]
    Ordinal0 [0x00367D51+2063697]
    Ordinal0 [0x00271F90+1056656]
    Ordinal0 [0x00291A80+1186432]
    Ordinal0 [0x002B58E7+1333479]
    Ordinal0 [0x002B395A+1325402]
    Ordinal0 [0x002B351D+1324317]
    Ordinal0 [0x00254D3F+937279]
    Ordinal0 [0x00255246+938566]
    Ordinal0 [0x00255521+939297]
    GetHandleVerifier [0x0054F3F6+1531734]
    GetHandleVerifier [0x005FE9AE+2249998]
    GetHandleVerifier [0x004539AB+501003]
    GetHandleVerifier [0x00452A29+497033]
    Ordinal0 [0x0036D11D+2085149]
    Ordinal0 [0x00254ADE+936670]
    Ordinal0 [0x002546C0+935616]
    GetHandleVerifier [0x00625E4C+2410924]
    BaseThreadInitThunk [0x765AFA29+25]
    RtlGetAppContainerNamedObjectPath [0x777A7A9E+286]
    RtlGetAppContainerNamedObjectPath [0x777A7A6E+238]
, error=invalid session id, message=invalid session id}
Build info: version: 'unknown', revision: '1969d75', time: '2016-10-18 09:43:45 -0700'
System info: host: 'DESKTOP-HAH9N6P', ip: '172.16.12.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.11'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:375)
    at org.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:449)
    at org.openqa.selenium.By$ByName.findElement(By.java:303)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:360)
    at demoSelenium.Locators.main(Locators.java:21)
Caused by: java.lang.ClassCastException: class com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to class org.openqa.selenium.WebElement (com.google.common.collect.Maps$TransformedEntriesMap and org.openqa.selenium.WebElement are in unnamed module of loader 'app')
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:373)
     4 more

这个错误信息...

Starting ChromeDriver 93.0.4577.63 (ff5c0da2ec0adeaed5550e6c7e98417dac77d98a-refs/branch-heads/4577@{#1135}) on port 40273
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Nov. 11, 2021 3:43:35 P.M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Nov. 11, 2021 3:43:36 P.M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Nov. 11, 2021 3:43:36 P.M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.WebDriverException: Returned value cannot be converted to WebElement: {stacktrace=Backtrace:
    Ordinal0 [0x003CD403+2479107]

...暗示 无法 initiate/spawn 新的 Google Chrome 浏览上下文 .

您的主要问题是您使用的二进制文件版本之间不兼容。虽然您使用的是最新的 Chrome 驱动程序之一 v93.0.4577.63 版本是 3.0.1这是 oldancient.


解决方案

确保:

  • JDK 升级到当前等级 JDK 8u311.
  • Selenium 已升级到当前级别 Version 4.0.0
  • Chrome驱动程序 已更新至当前 ChromeDriver v95.0 级别。
  • Chrome 已更新至当前 Chrome 版本 95.0 级别。 (根据 ChromeDriver v78.0 release notes
  • 系统重启
  • 非 root 用户身份执行您的 @Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例.