将findElementById(“ elementID”)与appium一起用于本机android应用。错误:“不支持定位器策略'css选择器”“

时间:2019-07-01 15:02:22

标签: java android android-ndk appium native

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

使用UIAutomationViewer,我可以找到我要单击的元素的ID。但是,当我运行代码时,Selenium尝试使用css来替换od ID。

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:此会话不支持定位器策略'css选择器'”。为什么会这样?

1 个答案:

答案 0 :(得分:2)

您正在使用不兼容的Selenium JavaAppium Java客户组合。

调查dependencies for Appium 4.1.2似乎需要Selenium 2.53.1,由于JAR Hell,其他版本可能无法正常工作。

enter image description here

基本上,如果您使用的是MavenGradle之类的构建系统,则项目类路径中仅需要 Appium Java -其他jar文件将被解析通过Transitive Dependencies机制。

我还建议升级到Appium Client 7.0.0或任何最新版本released

查看Appium - Code Examples - Java中可以用作示例项目的示例项目。