有没有办法可以在编辑字段中选择完整的文字并删除。我正在尝试使用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); - 具有字符串长度的循环中的命令。请帮忙
答案 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 工作