【问题标题】:Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:调用函数结果缺少“值”
【发布时间】:2019-05-21 20:25:50
【问题描述】:

我在 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: unknown error: call function result missing 'value'

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

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

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

【问题讨论】:

  • 你能检查一下端口是指不同的服务器还是URL是正确的?
  • 一切都很好。问题在于sendkeys 我可以点击按钮和链接
  • 检查电子邮件字段是否可以在点击时启用。因为人类动作点击然后发送密钥。自动化只是发送密钥。

标签: appium appium-android


【解决方案1】:

我想发表评论,但为了清楚起见,我写在这里。是的,它与上面的帖子重复,请参阅日志

(会话信息:chrome=71.0.3578.99)

(驱动信息:chromedriver=2.33.506120

你正在使用 chromedriver 2.33 那个 Chrome v60-62 然后

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

ChromeDriver 2.45 适用于 Chrome v70-72

解决方案:其他兼容性见download page下载

【讨论】:

  • 嘿。我不知道它从何而来 chromedriver=2.33.506120 。我已经下载了2.45并在System.setProperty("webdriver.chrome.driver", "D:\\Eclipse\\chromedriver.exe");中配置了路径
  • chromedriver 2.45所在文件夹外,尝试在CMD中运行where chromedriver
  • 它的 Powershell 命令,然后试试这个 D:\Eclipse\chromedriver.exe --version 并尝试替换 double \` with /`
  • 最后一次尝试:D 打印属性System.out.println(System.getProperty("webdriver.chrome.driver"));
  • 它显示的路径与我设置的相同。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2018-07-14
    • 2018-08-16
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 2017-10-27
    • 1970-01-01
    相关资源
    最近更新 更多