我想删除文本框的默认值以输入新值,但我不知道该怎么做。
我当时想使用CTRL+a然后Delete但我不知道该怎么做。
我什至使用了 WebDriver 的命令driver.findElement("locator").clear();
。
我想删除文本框的默认值以输入新值,但我不知道该怎么做。
我当时想使用CTRL+a然后Delete但我不知道该怎么做。
我什至使用了 WebDriver 的命令driver.findElement("locator").clear();
。
代码有帮助吗?因为您正在编写的代码应该这样做:
driver.findElement("locator").clear();
如果它没有帮助,那么试试这个:
WebElement toClear = driver.findElement("locator");
toClear.sendKeys(Keys.CONTROL + "a");
toClear.sendKeys(Keys.DELETE);
也许你将不得不对Keys.CONTROL + "a"
CharSequence 进行一些转换,但第一种方法应该会产生魔力
对于页面对象模型 -
@FindBy(xpath="//foo")
public WebElement textBox;
现在在你的功能中
public void clearExistingText(String newText){
textBox.clear();
textBox.sendKeys(newText);
}
对于一般的硒架构 -
driver.findElement(By.xpath("//yourxpath")).clear();
driver.findElement(By.xpath("//yourxpath")).sendKeys("newText");
如果您正在寻找 Selenium RC 的解决方案,您可以简单地使用
// assuming 'selenium' is a healthy Selenium instance
selenium.type("someLocator", "");
您可以使用下面的代码。它选择字段中预先存在的值并用新值覆盖它。
driver.findElement(By.xpath("*enter your xpath here*")).sendKeys(Keys.chord(Keys.CONTROL, "a"),*enter the new value here*);
driver.findElement(locator).clear()
- 此命令适用于所有情况
clear()
对我不起作用。但这确实:
input.sendKeys(Keys.CONTROL, Keys.chord("a")); //select all text in textbox
input.sendKeys(Keys.BACK_SPACE); //delete it
input.sendKeys("new text"); //enter new text
以下函数将使用 PromiseWhile 将输入的字符一一删除,直到输入字段为空
driver.clearKeys = function(element, value){
return element.getAttribute('value').then(function(val) {
if (val.length > 0) {
return new Promise(function(resolve, reject) {
var len;
len = val.length;
return promiseWhile(function() {
return 0 < len;
}, function() {
return new Promise(function(resolve, reject) {
len--;
return element.sendKeys(webdriver.Key.BACK_SPACE).then(function() {
return resolve(true);
});
});
}).then(function() {
return resolve(true);
});
});
}
这对我有用:
driver.findElement(yourElement).clear();
driver.findElement(yourelement).sendKeys("");
.clear() 可用于清除文本
(locator).clear();
对定位器使用 clear 会删除该精确定位器中的所有值。
在软件测试服务中,这可以通过多种方式实现,上面显示的一些选项如下所示。
driver.executeScript("document.getElementByXpath('element').setAttribute('value', 'abc')");
使用动作类 Actions actions = new Actions(driver);
actions.click(driver.findElement(element) .keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).sendKeys(Keys.BACK_SPACE).build().perform());
actions = ActionChains(driver)
ak = driver.find_element_by_id('blogname')
actions.move_to_element(ak)
actions.click()
actions.key_down(Keys.CONTROL).send_keys('a').key_down(Keys.DELETE)
actions.perform()