以下是我为文本字段编写的代码。
driver.findElement(By.xpath("//android.widget.RelativeLayout[1]/android.widget.EditText[1]")).click();
driver.findElement(By.xpath("//android.widget.RelativeLayout[1]/android.widget.EditText[1]")).sendKeys("Sathiya");
driver.navigate().back();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//android.widget.RelativeLayout[1]/android.widget.EditText[2]")).click();
driver.findElement(By.xpath("//android.widget.RelativeLayout[1]/android.widget.EditText[2]")).sendKeys("Rengarajan");
driver.navigate().back();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[1]")).click();
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[1]")).sendKeys("sathiyarengarjan@setmore.com");
driver.navigate().back();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[3]")).click();
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[3]")).sendKeys("3295739258");
driver.navigate().back();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[4]")).click();
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[4]")).sendKeys("Ascendas");
driver.navigate().back();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[5]")).click();
driver.findElement(By.xpath("//android.widget.RelativeLayout[3]/android.widget.EditText[5]")).sendKeys("Taramani");
driver.navigate().back();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
前5次点击查找确切的文本框,但是当前5个文本框执行sendkeys时 - 所有值都将输入到第6个文本框中。当对6文本框执行单击时,我收到错误,指出无法找到元素。有什么建议吗?
服务器日志:
处理命令时发生未知的服务器端错误。 (警告:服务器未提供任何堆栈跟踪信息)
命令持续时间或超时:60.46秒
构建信息:版本:&#39; 2.42.2&#39;,修订版:&#39; 6a6995d&#39;,时间:&#39; 2014-06-03 17:42:30&#39; < / p>
系统信息:主持人:&#39; SR6-SM-MACAIR.local&#39;,ip:&#39; 10.5.3.239&#39;,os.name:&#39; Mac OS X&#39 ;,os.arch:&#39; x86_64&#39;,os.version:&#39; 10.9.4&#39;,java.version:&#39; 1.7.0_21&#39;
会话ID:4d7c958f-9d8f-4989-8960-e2999cf83f75
驱动程序信息:io.appium.java_client.AppiumDriver
功能[{platform = LINUX,app = / usr / local / android-sdk / adt-bundle-mac-x86_64-20140702 / sdk / platform-tools / SETMORE-ANDROIDAPP / Setmore.apk,javascriptEnabled = true,appActivity = com.adaptavant.setmore.ui.StartActivity,browserName =,networkConnectionEnabled = true,desired = {platformVersion = 4.4,app = / usr / local / android-sdk / adt-bundle-mac-x86_64-20140702 / sdk / platform- tools / SETMORE-ANDROIDAPP / Setmore.apk,deviceName = Google Nexus 4,platformName = Android,browserName =,appActivity = com.adaptavant.setmore.ui.StartActivity,appPackage = com.adaptavant.setmore},locationContextEnabled = false,appPackage = com.adaptavant.setmore,platformVersion = 4.4,databaseEnabled = false,platformName = Android,deviceName = Google Nexus 4,webStorageEnabled = false,warnings = {},takesScreenshot = true}]
答案 0 :(得分:0)
不确定为什么每个back
之后都需要sendkeys
。
您的代码中的一些问题-
如果页面上的布局发生细微变化,您的Xpath也容易出错。
您不会在代码中连续发送隐式等待。
假设所有文本框都在可见区域的同一页上...您可以执行以下操作-
a。搜索所有这样的editText(textboxes)-
elements = driver.get_webelements("//android.widget.EditText")
b)将文本发送到每个文本框
for element in elements:
element.sendKeys("Hello world!");
如果同一视图中有更多文本框但需要滚动,则必须在其中添加滚动逻辑。
注意:上面的代码在python中,但是我想将其转换为Java应该不难