我正在尝试使用此操作清除文本字段:
emailField.sendKeys("gmail.com");
emailField.sendKeys(Keys.CONTROL,"a",Keys.DELETE);
在上面的代码中,最后一行只选择文本,不删除它,但如果我将它分开的动作分开。
emailField.sendKeys(Keys.CONTROL,"a");
emailField.sendKeys(Keys.DELETE);
答案 0 :(得分:12)
来自WebElement.clear()
的JavaDoc:
如果此元素是文本输入元素,则将清除该值。 对其他元素没有影响。文本输入元素是INPUT和 TEXTAREA元素。请注意,此事件触发的事件可能不是 正如你所期望的那样。特别是,我们不会触发任何键盘或鼠标 事件。如果要确保触发键盘事件,请考虑 使用
sendKeys(CharSequence)
和退格键之类的内容。至 确保您获得更改活动,请考虑跟随 使用标签键sendKeys(CharSequence)
。
您很可能只需要致电:
emailField.sendKeys("gmail.com");
emailField.clear();
但如果您因某些原因需要通过键盘完成清算,请使用退格。
答案 1 :(得分:11)
keys.DELETE无法删除输入文本,应该使用keys.BACKSPACE。
emailField.sendKeys(Keys.BACKSPACE)
答案 2 :(得分:2)
我在javascript中使用,并且运行良好:
await textBox.sendKeys(value);
await textBox.sendKeys(Key.BACK_SPACE);
答案 3 :(得分:1)
来自Keys.chord
chord(java.lang.CharSequence ... value) 在“和弦”中模拟一次按下许多键。
你应该可以使用
emailField.sendKeys(Keys.chord(Keys.CONTROL,"a",Keys.DELETE));
答案 4 :(得分:1)
在chrome驱动程序中测试
WE.send_keys(' \b')
这将添加空间,然后将其删除(退格)
答案 5 :(得分:0)
FitHeaderCard.Value
对我没用。
我用“键”代替“键”
emailField.sendKeys(Keys.BACKSPACE)
答案 6 :(得分:-1)
1. in WebdriverIO, i tried to edit the text by clear text (which contains special charactes like @, +, _) in text field by below following step. Eventhough it was not successful.
example: text=> abc+1234@gmail.com
step1:browser.clearElement(selector);
step2:browser.execute(function () {
document.querySelector(>>>Cssselector<<<).value="";
});
step3: browser.doubleClick(selector);
browser.keys("Delete");
step4: browser.click(selector);
browser.keys(['Meta',a]);
browser.keys('Meta');
browser.keys('Delete');
Note: below step is resolved this issue.
var count= browser.getAttribute(selector, value).length;
for (var i=0;i<count;i++)
{
if (browser.getAttribute(selector, value)=='')
break;
}
else
{
browser.doubleClick(selector);
browser.keys("Delete");
}
browser.pause(200);
//它将轻松清除您的文本字段。
注意: 您可以立即添加新文本。