Using findElementById("elementID") with appium for native android app. Error: "Locator strategy 'css selector" is not supported"

Using findElementById("elementID") with appium for native android app. Error: "Locator strategy 'css selector" is not supported"

I am using Appium installed over npm (version 1.13.0), Selenium (3.8.1), Appium client for java (4.1.2).

使用 UIAutomationViewer,我能够找到我想要单击的元素的 ID。但是当我 运行 代码时,在 od ID 的位置,selenium 试图用 css.

找到它们
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, 
"PixelTest");
capabilities.setCapability("platformName","Android");
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, 
"UiAutomator1");
capabilities.setCapability(MobileCapabilityType.NO_RESET, true);
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity", ".Calculator");

driver = new AndroidDriver<AndroidElement>(new URL(url), capabilities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.findElementById("digit_9").click();
driver.findElementById("digit_6").click();

driver.findElementById("pad_operator").click();

driver.findElementById("digit_1").click();
driver.findElementById("digit_0").click();  

driver.findElementById("eq").click();

我遇到的错误:"org.openqa.selenium.InvalidSelectorException: Locator Strategy 'css selector' is not supported for this session"。为什么会这样?

您使用的 Selenium Java and Appium Java 客户端组合不兼容。

调查dependencies for Appium 4.1.2 it appears that you need Selenium 2.53.1, other versions might not work due to JAR Hell

基本上,如果您使用 Maven or Gradle - the other jars will be resolved via Transitive Dependencies 机制之类的构建系统,您的项目类路径中只需要 Appium Java

我还建议升级到 Appium Client 7.0.0, or whatever is the latest version released

查看 Appium - Code Examples - Java 以获取可用作基础的示例项目。