【发布时间】:2019-09-28 16:08:48
【问题描述】:
我在特定 EditText 字段中执行发送密钥时遇到问题。我尝试了一个脏的 xpath 和 id,但它仍然没有进入文本字段。但是我觉得找到元素没有问题。然而,它并没有点击进入元素。
所以在应用中发生的情况是,当用户选择页面时,它会打开一个 Web 视图,并且 EditText 字段位于该 WebView 中。
这是我从 appium 检查器那里得到的脏 xpath:
/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup/android.support.v4.view.ViewPager/android.view.ViewGroup/android.widget.EditText[1]
这是一个不错的 ID:
@FindBy(id = "test_number")
public WebElement testNumberTextField;
我也尝试使用脏 xpath 使用 find by xpath。
这是我尝试输入文本的方法。您可以通过注释代码看到我也尝试了其他方法以使其正常工作,但仍然没有成功:
public void enterTestNumber(){
//List<WebElement> menu22 =drive.getDriver().findElements(By.className("android.widget.EditText"));
// menu22.get(1).sendKeys(randomStringGeneratorMethods.randomAlphaNumericString(7));
testPage.testNumberTextField.sendKeys(randomStringGeneratorMethods.randomAlphaNumericString(7));
//js.executeScript("document.getElementById('"+testPage.testNumberTextField+").value='"+randomStringGeneratorMethods.randomAlphaNumericString(7)+"';");
}
随机生成器只是一个随机字符串生成器,它是这样的:
public String randomAlphaNumericString(int characterLength) {
return RandomStringUtils.randomAlphanumeric(characterLength);
}
有谁知道如何让它工作,以便它可以在这个 EditText 字段中输入文本?
【问题讨论】:
-
您的 menu22 尺寸是多少?您收到
testNumberTextField的任何错误消息吗? -
它没有输出尺寸也没有给我一个错误。我尝试了 system.out.println 但没有输出。我可以尝试添加大小并运行它,但服务器现在一直关闭到星期一
-
如果一个元素是“editText”,那么它就不会出现在 Web 视图中。如果这是一个原生或混合应用程序,请添加您的 UIAutomator 屏幕的屏幕截图,或者如果这是一个网络应用程序,请通过指向确切元素的 chrome 浏览器添加适当的 HTML 代码。
-
@Brucey 您对答案感到满意,或者您需要更多帮助或建议
-
我意识到没有问题,它不起作用的原因是我必须在运行它之前进行 mvn clean 测试。它没有更新我的 sendKeys 代码,这就是它没有输入的原因。我以前不必做 mvn clean text 但现在看来我必须在运行测试之前做
标签: java android selenium appium