python selenium checkbox第n个元素if text

时间:2013-10-12 19:44:00

标签: python selenium webdriver selenium-webdriver

我正在使用python selenium并且需要访问元素,标签是“thisis2ndID”并启用复选框?

<h3 class="activator"> … </h3>
<div class="accordion-panel">
    <ul>
        <li class="field">
            <input id="thisis1stID" type="checkbox" name=""></input>
            <label for="thisis1stID"> … </label>
        </li>
        <li class="field">
            <input id="thisis2ndID" type="checkbox" name=""></input>
            <label for="thisis2ndID"> … </label>
        </li>
        <li class="field">
            <input id="thisis3rdID" type="checkbox" name=""></input>
            <label for="thisis3rdID"> … </label>
        </li

尝试了这些,但它们似乎不起作用......

    browser.find_element_by_id('main-id').click()
    browser.find_element_by_xpath("//div[@class='accordion-panel']")
    browser.find_element_by_id(thisis2ndID').is_selected()

任何想法?

3 个答案:

答案 0 :(得分:1)

我已经通过几种不同的方式完成了这项工作,但您的最佳方法是迭代所有li代码并搜索您要查找的id值,试试这个

browser.find_element_by_xpath("//div[@class='accordion-panel']")
for i in browser.find_elements_by_tag_name("li"):
    ...

答案 1 :(得分:1)

如果在python中有使用cssSelector查找元素的规定,则下面的选择器和click()事件将启用复选框....

"div.accordion-panel li.field+li.field>#thisis2ndID"

我只使用java,所以我无法在python中提供确切的代码..

you can click here to know more about different kind of selectors

答案 2 :(得分:0)

这很有用......对于混乱,需要点击激活器来加载子选项......

browser.find_element_by_class_name('activator').click()
browser.find_element_by_xpath("//div[@class='accordion-panel']")
browser.find_element_by_id('thisis2ndID').click()
time.sleep(5)