我正在为Android App进行自动化。在运行脚本时,Appium无法找到元素。我尝试使用Id,Xpath。请帮助我...
Android版本:5.1.1和9 Appium版本:1.13.0 Maven项目
@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:使用给定的搜索参数无法在页面上找到元素
答案 0 :(得分:0)
此错误表明UIAutomator找不到该元素。
我发现您的Xpath代码有2个问题:
1-在,
之后用=
替换resource-id
。
2-您使用packageName(com.vehito.vehitoplus)代替了类名。
您可以使用UIAutomator Viewer查找元素的确切类名称:
(Android SDK Dir)\tools\bin\uiautomatorviewer.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查看器屏幕截图。
答案 1 :(得分:-1)
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 功能{app:C:\ Selenium \ workspace \ Ninja ...,appPackage:com.ninjafocus.app,appactivity:com.ninjafocus.app.base.vie ...,databaseEnabled:false,期望的:{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("\r\n" + "com.ninjafocus.app:id/signinButton").click();
driver.findElementById("\r\n" + "com.ninjafocus.app:id/parentEmailText").sendKeys("pooja.yadav@gmail.com");
driver.findElementById("\r\n" + "com.ninjafocus.app:id/parentPasswordText").sendKeys("1234");
driver.findElementById("\r\n" +"com.ninjafocus.app:id/startedButton").click();