Selenium webdriver 6个文本框,用于单击查找,但sendKeys()会将所有文本发送到最后一个文本框

Selenium webdriver 6个文本框,用于单击查找,但sendKeys()会将所有文本发送到最后一个文本框,selenium-webdriver,appium,Selenium Webdriver,Appium,下面是我为文本字段编写的代码 前5次单击会找到精确的文本框,但当对前5个文本框执行sendkeys时,所有值都会输入到第6个文本框中。当对6文本框执行click时,我收到一个错误,说明无法定位元素。有什么建议吗 服务器日志: 处理该命令时发生未知的服务器端错误。警告:服务器未提供任何stacktrace信息 命令持续时间或超时:60.46秒 构建信息:版本:“2.42.2”,修订版:“6a6995d”,时间:“2014-06-03 17:42:30” 系统信息:主机:'SR6-SM-MACAIR

下面是我为文本字段编写的代码

前5次单击会找到精确的文本框,但当对前5个文本框执行sendkeys时,所有值都会输入到第6个文本框中。当对6文本框执行click时,我收到一个错误,说明无法定位元素。有什么建议吗

服务器日志:

处理该命令时发生未知的服务器端错误。警告:服务器未提供任何stacktrace信息

命令持续时间或超时:60.46秒

构建信息:版本:“2.42.2”,修订版:“6a6995d”,时间:“2014-06-03 17:42:30”

系统信息:主机:'SR6-SM-MACAIR.local',ip:'10.5.3.239',os.name:'Mac os X',os.arch:'x86_64',os.version:'10.9.4',java.version:'1.7.0_21'

会话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.adapavant.SETMORE.ui.StartActivity,browserName=,networkConnectionEnabled=true,所需={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.adadavant.SETMORE.ui.StartActivity,appPackage=com.adadavant.SETMORE},locationContextEnabled=false,appPackage=com.adaptevant.setmore,platformVersion=4.4,databaseEnabled=false,platformName=Android,deviceName=Google Nexus 4,webStorageEnabled=false,warnings={},takesScreenshot=true}]

不确定每次发送密钥后为什么需要返回。 代码中的一些问题-

此外,如果页面上发生微小的布局更改,Xpath也容易出错

您不会在代码中连续发送隐式等待

假设所有文本框都位于可见区域的同一页面上…您可以执行以下操作-

a、 搜索像这样的所有EditTextBox-

elements = driver.get_webelements("//android.widget.EditText")
b向每个文本框发送文本

for element in elements:
    element.sendKeys("Hello world!");
如果同一视图中有更多文本框,但需要滚动,则必须在其中添加滚动逻辑


注意:上面的代码是用python编写的,但我想您将其转换为Java应该不难

我不明白.manage和.navigate.back在做什么。如果您粘贴Appium服务器日志,我可以提供更好的帮助。请粘贴服务器日志。当发生未知服务器错误时,通常是因为发生了什么以前没有。
for element in elements:
    element.sendKeys("Hello world!");