【问题标题】:Set Attribute value of an element in protractor在量角器中设置元素的属性值
【发布时间】:2019-06-16 18:48:42
【问题描述】:

我有以下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 属性中已经存在的值。

【问题讨论】:

  • 所提供的答案是否有帮助或是否需要任何其他帮助?

标签: angular webdriver protractor appium


【解决方案1】:

方法 1 - 执行脚本

您可以使用 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2020-09-12
    • 2021-12-11
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多