如何使用 nightwatch.js 将值设置为 textarea 属性

How to set value into textarea attribute using nightwatch.js

我正在 nighwatch.js 进行网络 ui 测试,我想为文本区域设置值,文本区域有一个属性,其中包含我的实际文本,我正在编写完整的文本区域以及如何我在下面设置。

<div class="textarea-description">
    <textarea cols="50" class="myClass setText" data-def placeholder="text to be replaced using nightwatch"/>
</div>

我正在尝试按以下方式在上述文本区域的属性 data-def 占位符 中设置值

browser.setValue('.textarea-description textarea[type=text]','nightwatch'); or
browser.setValue('.textarea-description textarea[data-def placeholder=text]','nightwatch'); or
browser.setValue('.textarea-description textarea[type=data-def placeholder]','nightwatch');

但没有任何效果。

这可能不是最好的解决方案,但它有效:

browser
.execute("document.querySelector('.textarea-description .myClass').setAttribute('placeholder', 'nightwatch');")

如果你有jQuery,你可以让它更好一点:

browser
.execute("$('.textarea-description .myClass').attr('placeholder', 'nightwatch');")

您可以使用 xpath 获取属性。

.useXpath().setValue('//textarea[contains(@placeholder,'text to be replaced using nightwatch')]@placeholder', 'nightwatch')

How to select specified node within Xpath node sets by index with Selenium?

感谢您提出的所有宝贵建议,您提供的所有建议都能够提供很好的知识,但不幸的是 none 的建议奏效了。我已经通过以下方式解决了它。

client.setValue('.textarea-description textarea','new text to be write.');

实际上属性 "data-def placeholder" 只使用了不是实际文本的水印,所以它有效。

这对我有用。

.assert.visible('div.textarea-description textarea.setText')
.moveToElement('div.textarea-description textarea.setText', null, null)
.mouseButtonClick('left')
.keys([browser.Keys.CONTROL, "a"])
.keys([browser.Keys.CONTROL, "nightwatch"])