我有以下HTML代码:
<div>
<textarea id="modalContentText"
data-modal="home.modal"
ng-model="home.modal.data.text"
ng-required="true">
</textarea>
</div>
基于我到目前为止在线阅读的测试代码的变化:
//First try
it('Enter text', function () {
element(by.id('modalContentText')).click();
element(by.id('modalContentText')).sendKeys('Content 1');
});
//Second try
it('Enter text', function () {
element(by.id('modalContentText')).clear();
element(by.id('modalContentText')).sendKeys('Content 1');
});
//Third try
it('Enter text', function () {
element(by.id('modalContentText')).click();
element(by.id('modalContentText')).clear();
element(by.id('modalContentText')).sendKeys('Content 1');
});
但是没有一个测试代码正常工作。首先尝试给我“UnknownError:无法聚焦元素”。第二次和第三次尝试都给我“InvalidElementStateError:元素必须是用户可编辑的才能清除它”。有谁知道这是如何做得好的?感谢。
答案 0 :(得分:0)
根据例外,这里是元素的问题。由于无法获得焦点而无法通过只读状态清除。您可以尝试在selenium中使用executeScript
方法,并使用它在字段中设置值。例如
var element = driver.findElement(By.Css("#modalContentText"));
driver.executeScript("arguments[0].setAttribute('value', arguments[1])", element, newValue);