设置量角器中元素的属性值

时间:2019-01-23 08:25:40

标签: angular webdriver protractor appium

我有以下html

<ion-input class="nick-name-input input input-md ng-valid ng-dirty ng-touched" name="nickname" type="text" ng-reflect-name="nickname" ng-reflect-model="my nickname" ng-reflect-type="text" style=""></ion-input>

我需要在量角器中为此元素设置ng-reflect-model属性的值。 基本上,我需要清除ng-reflect-model属性中已经存在的值。

1 个答案:

答案 0 :(得分:0)

方法1-executeScript

您可以使用 executeScript 将javascript代码直接发送到浏览器。 在这里阅读更多 https://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.executeScript

只需将 hello 替换为要插入到元素中的内容,然后将该元素作为 reqElement 传递给我即可。

let reqElement = await element(by.css('.nick-name-input'));
await browser.executeScript("arguments[0].setAttribute('ng-reflect-model','Hello');", reqElement);

方法2-使用protractor.key.backspace刷新

或者,如果这样做的原因是要使更改反映在DOM中,则可以创建这样的函数。这将清除并显示文本,并应刷新DOM,因此空白值将在ng-model-attribute中生效

let clearTextAndModel = async function (reqElement) {
    await reqElement.clear();
    await reqElement.sendKeys('a');
    await reqElement.sendKeys(protractor.Key.BACK_SPACE);
}