Alina
Alina

Reputation: 13

How to identify in selenium IDE an input followed by a label?

I have to identify a check-box using the label which follows it. the code is the following:

<input type="checkbox" checked="" value="1" id="email-100-100" name="email-100-100">
<label for="email-100-100" class="firefinder-match">Email me when someone asks me to set a flag</label>
<br>
</td>

I tried

Target://following-sibling::label[text()="Email me when someone asks me to set a flag"] Target://preceding-sibling::label[text()="Email me when someone asks me to set a flag"]

but in both cases selenium finds the text of label but not the check-box.

Could somebody help me in this?

Thank you in advance

Upvotes: 1

Views: 3733

Answers (2)

Lance Cleveland
Lance Cleveland

Reputation: 3204

You can also find a label that contains text, which is useful for a partial match. In my case I had something like this:

<label for="blah">
     <input name="blah" id="blah" type="checkbox" />
     Store Locator Plus
</label>

The accepted solution worked for the specific example cited but requires an exact match. Since this comes up on the top of search results I figured I'd present the partial-match solution here as well.

For Selenium IDE you can set a target like this:

//label[contains(text(),'Store Locator Plus')]//input[@type="checkbox"]

The contains function was required because the label text had an HTML element as well which thwarted the //label[text()='Store Locator Plus'] target.

Upvotes: 0

artbristol
artbristol

Reputation: 32417

Try

Target://label[text()="Email me when someone asks me to set a flag"]/../input[@type='checkbox']

It will work as long as the containing element of the label and checkbox only has one checkbox in it.

Upvotes: 3

Related Questions