Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'

我正在 chrome 移动浏览器中的 Android 自动化 Web 应用程序。我的 ADV 版本为 7.0

我正在尝试使用以下代码发送用于登录的用户名 -

driver = new AppiumDriver<WebElement>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("https://site-url/");
driver.findElement(By.id("email")).sendKeys("myemailid@gmail.com")

它抛出以下异常 -

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value' (Session info: chrome=71.0.3578.99) (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.17134 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds

注意:请不要将其标记为重复。以下参考文献中的解决方案对我不起作用。

  1. Selenium WebDriverException: unknown error: call function result missing 'value' while calling sendkeys method

我使用的是最新的 chrome 版本,即 71 和 chrome 驱动程序 2.45。看来不是兼容性问题。

观察: chrome驱动程序版本 2.45 用于设置 属性 但它在异常

中显示 chromedriver=2.33.506120

我想对其进行评论,但为了清楚起见,我将其写在这里。是的,它在 post 上方重复,请参阅日志

(Session info: chrome=71.0.3578.99)

(Driver info: chromedriver=2.33.506120

您正在使用 chromedriver 2.33 Chrome v60-62 然后

I'm using latest chrome version i.e. 61 and chromedriver 2.45 . It doesn't seems a compatibility issue.

Chrome驱动程序 2.45 用于 Chrome v70-72

解决方案:查看 download page 了解其他兼容性并下载

在我的情况下,这似乎是默认的 Appium chromedriver.exe 问题,因为它默认采用 chromedriver=2.33.506120,即使我已经设置了 2.45 版本。以下解决方法解决了我的问题。

先决条件 chromedriver.exe 版本应与 device/emulator

中安装的 chrome 版本兼容

setting chromedriver.exe path in Appium using System.setProperty("webdriver.chrome.driver", "D:\Eclipse\chromedriver.exe"); won't work

使用以下方式在Appium中设置chrome驱动路径:

  1. 使用 DesiredCapabilities 例如

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("deviceName", "emulator-5554 (9)");
    capabilities.setCapability("platformVersion", "9");
    capabilities.setCapability("browserName", "Chrome");
    capabilities.setCapability("noReset", true);
    capabilities.setCapability("chromedriverExecutable", "D:\chromedriver_win32_2.45\chromedriver.exe");
    
  2. 在启动 Appium Server 时提供 chromedriver.exe 路径。参考下面的 snap