Ответ 1
Если вы ищете решение от Selenium RC, вы можете просто использовать
// assuming 'selenium' is a healthy Selenium instance
selenium.type("someLocator", "");
Я хочу удалить значение по умолчанию для текстового поля, чтобы ввести новое значение, но я не понимаю, как это сделать.
Я думал использовать CTRL + a, а затем Delete, но я не уверен, как это сделать.
Я даже использовал команду WebDriver driver.findElement("locator").clear();
.
Если вы ищете решение от Selenium RC, вы можете просто использовать
// assuming 'selenium' is a healthy Selenium instance
selenium.type("someLocator", "");
И был ли код полезен? Поскольку код, который вы пишете, должен сделать следующее:
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");
Вы можете использовать приведенный ниже код. Он выбирает предварительно существующее значение в поле и перезаписывает его новым значением.
driver.findElement(By.xpath("*enter your xpath here*")).sendKeys(Keys.chord(Keys.CONTROL, "a"),*enter the new value here*);
Следующая функция будет удалять входной символ один за другим, пока поле ввода не будет пустым, используя 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 с локатором, удаляет все значения в этом точном локаторе.