使用给定的搜索参数无法在页面上找到元素 (Appium 1.13.0)



我正在研究Android应用程序的自动化。运行脚本时,Appium 找不到元素。我尝试使用Id,Xpath。请帮我这个...

安卓版本:5.1.1 & 9 Appium 版本: 1.13.0 马文项目

@Test
public void login() {
driver.findElement(By.xpath("//com.vehito.vehitoplus[contains(@resource-id,'phone')]")).sendKeys("9632642105");
driver.findElement(By.id("com.vehito.vehitoplus:id/sign_in_button")).click();
}

实际结果: 运行命令时遇到内部错误:NoSuchElementError:使用给定的搜索参数无法在页面上找到元素

此错误表示UIAutomator无法找到该元素。

我发现您的 Xpath 代码有 2 个问题:

1-resource-id后将,替换为=

2-您使用packageName(com.vehito.vehitoplus(而不是类名。

您可以使用UIAutomator Viewer找到元素的确切类名:

(Android SDK Dir)toolsbinuiautomatorviewer.bat

我的意思是你可以使用这个:(如果元素的类名是:android.widget.EditText (

driver.findElement(By.xpath("//android.widget.EditText[contains(@resource-id='phone')]")).sendKeys("9632642105");

根据我的经验,我发现By.库(XPath 或 ID(不能很好地与@contains配合使用。因此,最好使用确切的属性。

例如

driver.findElement(By.id("com.vehito.vehitoplus:id/sign_in_button")).sendKeys("9632642105");

我希望这有所帮助。如果没有,请提供页面的屏幕截图以及此输入元素的UIAutomator查看器屏幕截图。

org.openqa.selenium.NoSuchElementException:使用给定的搜索参数无法在页面上找到元素。 有关此错误的文档,请访问:https://www.seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:"3.141.59",修订版:"e82be7d358",时间:"2018-11-14T08:25:53" 驱动程序信息: io.appium.java_client.android.AndroidDriver Capabilities {app: C:\Selenium\workspace\Ninja..., appPackage: com.ninjafocus.app, appactivity: com.ninjafocus.app.base.vie..., databaseEnabled: false, desired: {app: C:\Selenium\workspace\Ninja..., appPackage: com.ninjafocus.app, appactivity: com.ninjafocus.app.base.vie..., deviceName: Nokia 6, newCommandTimeout: 60, platformName: android, platformVersion: 9, udid: PLEGAR1780410318}, deviceApiLevel: 28, 默认套件

driver.findElementById("rn" + "com.ninjafocus.app:id/signinButton").click();
driver.findElementById("rn" + "com.ninjafocus.app:id/parentEmailText").sendKeys("pooja.yadav@gmail.com");
driver.findElementById("rn" + "com.ninjafocus.app:id/parentPasswordText").sendKeys("1234");
driver.findElementById("rn" +"com.ninjafocus.app:id/startedButton").click();

最新更新