在领域的Appium selenium明确文本

时间:2015-10-14 21:28:10

标签: javascript java selenium xpath appium

有没有办法可以在编辑字段中选择完整的文字并删除。我正在尝试使用Selenium Appium和Java自动化移动应用程序,并且有一个字段有10-15个字符。我想删除字段中的现有内容,然后使用.sendkeys()命令更新它。

driver.findElement(By.xpath(" elmentpath&#34))。清晰(); - 不起作用 也 driver.findElement(By.xpath(" elmentpath&#34))。单击(); - 此命令单击字符串的中心,如果我运行 driver.sendKeyEvent(AndroidKeyCode.BACKSPACE); ---它只清除字符串的一半,所以如果有可以在字符串末尾点击我可以运行 driver.sendKeyEvent(AndroidKeyCode.BACKSPACE); - 具有字符串长度的循环中的命令。请帮忙

5 个答案:

答案 0 :(得分:0)

你可以做element.clear()或element.sendKeys(“”)。虽然不建议使用第二个,但是当我的开发框的显示文本大小设置为中等或更大时,我不得不使用它。

答案 1 :(得分:0)

我认为您可以设置selenium Actions类的实例以支持CTRL + A和删除。

WebElement textWebElement = webDriver.findElement(By.xpath("elmentpath"));
Actions actions = new Actions(webDriver);
actions.sendKeys(textWebElement, Keys.chord(Keys.CONTROL, "a").perform();
actions.sendKeys(textWebElement, Keys.DELETE).perform();

我不确定它如何与Android API一起使用,但这就是我通常在junit内容中处理它的方式。

请注意,CTRL + A事件将作为和弦发送,而不是作为单独的事件或字符数组发送。

祝你好运!

答案 2 :(得分:0)

您是否尝试过双击webelement以允许突出显示整个文本并按一个退格键以清除整个文本。

TouchAction action = new TouchAction(driver).tap(element).waitAction(800).tap(element);
action.perform();
driver.sendKeyEvent(AndroidKeyCode.BACKSPACE); 

答案 3 :(得分:0)

Appium旧版本出现问题。尝试使用最新版本的Appium。我使用的是1.4.16.1,之后我从未遇到过这样的问题。

请参阅该链接了解更多详情 - https://github.com/appium/appium/issues/4565

如果您在使用新版本后仍然遇到问题,请与我们联系。感谢。

答案 4 :(得分:0)

MobileElement element = driver.findElement(By.id("id_data"));
Rectangle rectangle = element.getRect();
int YAxis = element.getCenter().getY();
int XAxis = rectangle.getWidth();
TouchAction action = new TouchAction(this.getIOSDriver());
action.tap(TapOptions.tapOptions().withPosition(PointOption.point(XAxis, 
YAxis))).perform();
element.clear();

使用 Appium 1.21.0 为 iOS 14 工作