4

How can I verify that an input element has any text in it. It is loaded with random text so I can't verify a specific value, but there must be some text in it. I'm using Selenium IDE

6 Answers 6

5

In Selenium IDE you can use the verifyEval command and a bit of JavaScript to verify that a field is populated, or not.

Command: verifyEval
Target:  this.page().findElement("//input[@id='email']").value != ''
Value:   true

In this case, I'm testing that the <input type="email" id="email" value='[email protected]"> is not an empty field on my HTML page.

When this command is run, the JavaScript code in the target is evaluated. Here it is testing the current value of the email field against an empty string. If they don't match (e.g. the field isn't empty) then it true is returned. This return value is then compared to the expected Value which is also true and so the test passes.

Sign up to request clarification or add additional context in comments.

1 Comment

verifyEval doesn't seem to exist in the Chrome or Firefox versions of Selenium IDE.
3

I just use

verifyNotValue|//input[@id='email']|

the 3rd param is empty

1 Comment

verifyNotValue doesn't seem to exist in the Chrome or Firefox versions of Selenium IDE.
0

This should be a cinch if you use Selenium-RC with any programming language. However, given that you are using the IDE, I would recommend adding this user extension. This will give you some looping constructs. You can use storeText and then take a decision based on the value of the variable in which the retrieved text is stored. The Stored Vars is another useful IDE firefox extension for analyzing the contents of the storeText variable.

Comments

0

Try this:

driver.find_element_by_id("email").get_attribute("value") != ''

1 Comment

The question is about the IDE version, not the web driver, so this answer won't work.
0

It was part of a sign up form assertion. The firstName field was provided with data. Then i used the following code to verify whether the field was filled up with data.

if(driver.findElement(By.cssSelector("#FirstName")).getText()==""){
        System.out.println("field didn't fillup with data");
    } 
else {
        System.out.println("field filled up with data");
    }

1 Comment

The question is about the IDE version, not the web driver, so this answer won't work.
0

This is 12 years later, but I was having this same issue and I couldn't find the answer, so I did it in a slightly more brute force way since it doesn't seem that there is a single command with an elegant solution. This is for Selenium IDE 4.0.1-alpha.78

This is a 4 command solution, but it works.

Format is (Command ---> Target ---> Value)

 1. execute script ---> return $('selector').get(0).value != '' ---> valExists
 2. if ---> !${valExists}
 3.   assert ---> your error message that will stop test execution
 4. end

Line 1 returns the result of the logical comparison into the variable ${valExists} so that holds boolean true or false after execution.

Line 2 just checks the boolean value. Since you can't execute a script in an "if" statement, it has to be executed in the line before.

I'm sure this would work with anything that you need a value but you don't care what that value is. In my script, I also have an echo after the execute script to just log the result.

Hopefully this can help people from the future.

Edited for clarity.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.