2

我正在使用 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()

有任何想法吗?

4

3 回答 3

1

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

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

我只在java上工作过,所以我无法在python中提供确切的代码..

您可以单击此处了解有关不同类型选择器的更多信息

于 2013-10-13T18:07:51.557 回答
1

我已经用几种不同的方式做到了这一点,但在你的情况下,最好的方法是迭代所有li标签并搜索id你正在寻找的值,试试这个

browser.find_element_by_xpath("//div[@class='accordion-panel']")
for i in browser.find_elements_by_tag_name("li"):
    ...
于 2013-10-12T19:56:16.207 回答
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)
于 2013-10-13T18:14:27.340 回答