当我尝试运行 appium 自动化项目时,方法 getBinaryPath() 未定义为 Eclipse 中显示的类型 WebDriverManager 错误

Posted

技术标签:

【中文标题】当我尝试运行 appium 自动化项目时,方法 getBinaryPath() 未定义为 Eclipse 中显示的类型 WebDriverManager 错误【英文标题】:The method getBinaryPath() is undefined for the type WebDriverManager error shows in eclipse while i am trying to run appium automation project 【发布时间】:2021-05-22 22:22:16 【问题描述】:

我正在尝试运行一个迷你 appium 项目,我正在运行模拟器和 appium 服务器,这是我的代码,上面写着 .getBinaryPath() is undefined for type WebDriverManager "caps.setCapability("chromedriverExecutable", WebDriverManager.chromedriver().getBinaryPath());"

package appiumBasics;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import io.github.bonigarcia.wdm.WebDriverManager;

@Test
public class RubWebApplicationAndroidEmulator 

    public void OpenWebApplication() throws MalformedURLException 
        DesiredCapabilities caps = new DesiredCapabilities();
    
        caps.setCapability(MobileCapabilityType.BROWSER_NAME, "chrome");
        caps.setCapability(MobileCapabilityType.DEVICE_NAME, "HaidyEmulator");
    WebDriverManager.chromedriver().setup();
    caps.setCapability("chromedriverExecutable", WebDriverManager.chromedriver().getBinaryPath());
        
    AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),caps);
    
    

【问题讨论】:

【参考方案1】:

那是因为如果你真的去仓库打开有问题的类,你会发现没有为WebDriverManager定义这样的方法:

https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/java/io/github/bonigarcia/wdm/WebDriverManager.java

大概这在某个时候被改变了。可能你需要WebDriverManager#getDownloadedDriverPath():

@Test
public class RubWebApplicationAndroidEmulator 

    public void OpenWebApplication() throws MalformedURLException 
        DesiredCapabilities caps = new DesiredCapabilities();
    
        caps.setCapability(MobileCapabilityType.BROWSER_NAME, "chrome");
        caps.setCapability(MobileCapabilityType.DEVICE_NAME, "HaidyEmulator");
    WebDriverManager.chromedriver().setup();
    caps.setCapability("chromedriverExecutable", WebDriverManager.chromedriver().getDownloadedDriverPath());
        
    AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),caps);
    
    

【讨论】:

好吧,我能够找到发生此更改的提交,似乎 getDownloadedDriverPath() 是正确的猜测:github.com/bonigarcia/webdrivermanager/commit/…

以上是关于当我尝试运行 appium 自动化项目时,方法 getBinaryPath() 未定义为 Eclipse 中显示的类型 WebDriverManager 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS appium ios 测试总是失败

如何在 Appium 中为 iOS 自动化启用和使用 WebView

appium的截图

使用 Appium 进行移动应用程序自动化测试

出现“Posix 生成失败”错误 - Appium iOS

我遇到了这个 selenium 异常:尝试使用 java 和 Appium 运行我的测试时,方法尚未实现