Appium “线程中的异常”;“主要”;org.openqa.selenium.WebDriverException:未知错误:调用函数结果丢失';价值';

Appium “线程中的异常”;“主要”;org.openqa.selenium.WebDriverException:未知错误:调用函数结果丢失';价值';,appium,appium-android,Appium,Appium Android,我正在安卓手机上的chrome浏览器中自动化一个web应用程序。我已经安装了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://

我正在安卓手机上的chrome浏览器中自动化一个web应用程序。我已经安装了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")
driver=新的AppiumDriver(新的URL(“http://0.0.0.0:4723/wd/hub(能力),;
driver.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
驱动程序。获取(“https://site-url/");
driver.findElement(By.id(“电子邮件”)).sendKeys(“myemailid@gmail.com")
它抛出以下异常-

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

注意:请不要将其标记为重复。以下参考资料中的解决方案不适用于我

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


    观察:chromedriver版本2.45用于设置属性,但它在例外情况下显示
    chromedriver=2.33.506120
    ,我想对其进行注释,但为了清楚起见,我将其写在这里。是的,它重复上面的帖子,见日志

    (会话信息:chrome=71.0.3578.99)

    (驾驶员信息:chromedriver=2.33.506120

    您使用的chromedriver
    2.33
    就是Chrome
    v60-62的chromedriver

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

    ChromeDriver
    2.45
    用于Chrome
    v70-72


    解决方案:请参阅以了解其他兼容性并下载

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

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

    使用设置应用程序中的chromedriver.exe路径
    System.setProperty(“webdriver.chrome.driver”,
    “D:\\Eclipse\\chromedriver.exe”);
    不起作用

    使用以下方法在应用程序中设置chromedriver路径:

  • 使用所需的功能,例如

    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");
    
  • 启动Appium服务器时提供chromedriver.exe路径。请参阅下面的快照


  • 嘿,我不知道它从哪里来了
    chromedriver=2.33.506120
    。我已经下载了2.45并在
    System.setProperty(“webdriver.chrome.driver”,“D:\\Eclipse\\chromedriver.exe”)中配置了路径
    在chromedriver 2.45所在的文件夹之外,尝试在CMDits Powershell命令中运行
    where chromedriver
    ,然后尝试此
    D:\Eclipse\chromedriver.exe--version
    并尝试将double
    \`替换为
    /`最后一次尝试:D打印属性
    System.out.println(System.getProperty(“webdriver.chrome.driver”))
    它显示与我设置的路径相同。你能检查端口是否指向不同的服务器或URL是否正确吗?一切都很好。问题在于
    发送密钥
    我能够执行单击按钮和链接检查电子邮件字段是否可以在单击时启用。因为人工操作单击然后发送密钥。自动化只要发钥匙就行了。