我正在使用:
appiumDriver.findElement(By.id("com.XXX.keyword:id/nextButton"));
但是有时我们会有调试版本,所以我们会有类似“com.XXX.keyword.debug”的东西。因此,我想在测试运行之前获取包名称,以便测试可以独立于此。
我尝试过:
driver.currentActivity()
但它只返回了类似于".MainActivity"的东西。
有没有什么方法可以使用Appium获取包名呢?
非常感谢。
我正在使用:
appiumDriver.findElement(By.id("com.XXX.keyword:id/nextButton"));
driver.currentActivity()
但它只返回了类似于".MainActivity"的东西。
有没有什么方法可以使用Appium获取包名呢?
非常感谢。
您不需要包名来定位元素。只需复制粘贴ID而不带包名。例如,在您的情况下,仅使用“nextButton
”而不是“com.XXX.keyword:id/nextButton
”。
elementByIdOrNull()
不能正常工作?我需要传递完整的包名和 ":id/" 才能找到元素。 - Joshua PinterelementByIdOrNull
和XPath时,您需要提供完整的包名称和“:id /”。对于这些情况,请参见@RajKumar的答案。 - Joshua Pinter要获取当前包名,请使用以下方法:
Original Answer翻译成"最初的回答"
driver.getCurrentPackage();
driver.currentActivity();