首页 > 解决方案 > 线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:调用函数结果缺少“值”

问题描述

我在 Android Mobile 的 chrome 浏览器中自动化一个网络应用程序。我有 7.0 版的 ADV

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

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")

它抛出异常 -

线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:调用函数结果缺少“值”(会话信息:chrome=71.0.3578.99)(驱动程序信息:chromedriver=2.33.506120(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),平台=Windows NT 10.0.17134 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:0 毫秒

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

  1. org.openqa.selenium.WebDriverException:未知错误:调用函数结果缺少“值”

  2. Selenium WebDriverException:未知错误:调用 sendkeys 方法时调用函数结果缺少“值”

我正在使用最新的 chrome 版本,即 71 和 chromedriver 2.45 。这似乎不是兼容性问题。

观察: chromedriver 2.45 版用于设置属性,但它显示chromedriver=2.33.506120在异常中

标签: appiumappium-android

解决方案


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

先决条件 应具有chromedriver.exe与设备/模拟器中安装的 chrome 版本兼容的版本

在 Appium 中使用设置 chromedriver.exe 路径 System.setProperty("webdriver.chrome.driver", "D:\\Eclipse\\chromedriver.exe");不起作用

在 Appium 中使用以下方式设置 chromedriver 路径:

  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 路径。请参阅下面的快照

    在此处输入图像描述


推荐阅读