3

I am working on nighwatch.js for web ui testing, I want to set value to a textarea, and textarea has an attribute which has my actual text, I am writing full textarea and how I am setting in following.

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

I am trying to set value in above textarea's attribute data-def placeholder as following ways

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'); 

but nothing is working.

4 Answers 4

1

This might not be the best solution but it works:

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

If you have jQuery you can make it a bit nicer:

browser .execute("$('.textarea-description .myClass').attr('placeholder', 'nightwatch');") 
Sign up to request clarification or add additional context in comments.

3 Comments

Did you try both JavaScript and jQuery?
No, i tried only first one., i will try second one and let you know.
Your textarea does not have a closing tag (see the edit I made on your question) and I think that might be an issue as well.
1

Thank you for your all valuable suggestions, all suggestions provided by you was able to give good knowledge but unfortunately none of the suggestion worked. I have resolved it by using following.

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

Actually attribute "data-def placeholder" was using only watermark that was not actual text, so it is working.

1 Comment

Then I misunderstood your question. It wasn't about setting the attribute but rather setting the direct value in the textarea?
0

You could use xpath to get the attribute.

.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?

Comments

0

This worked for me.

.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"]) 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.