Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Selecting Element followed by text with Selenium WebDriver

I am using Selenium WebDriver and the Python bindings to automate some monotonous WordPress tasks, and it has been pretty straightforward up until this point. I am trying to select a checkbox, but the only way that I can identify it is by the text following it. Here is the relevant portion of HTML:

<li id="product_cat-52">
    <label class="selectit">
       <input value="52" type="checkbox" name="tax_input[product_cat][]" id="in-product_cat-52"> polishpottery
    </label>
</li>

The only information that I have in my script to identify this checkbox is the string "polishpottery". Is there any way to select that checkbox knowing only the text that follows?

like image 616
Andrew Avatar asked Jul 10 '12 03:07

Andrew


Video Answer


1 Answers

As @sherwin-wu already said, you should find a way to select what you want based on id or name or class (and most likely a combination of it). In your example there seem to be enough possibilities to do so, although I don't know what the rest of the page normally looks like.

Having that said, it's possible to do what you asked for using an XPath selector like

driver.find_element_by_xpath("//li/label/input[contains(..,'polishpottery')]")
like image 135
zpea Avatar answered Oct 24 '22 19:10

zpea