单击使用python和selenium的复选框元素

时间:2018-07-26 23:07:48

标签: python selenium ui-automation

我正在尝试自动加载和配置网页。 在此页面上,我试图检查复选框的状态,如果未选中,请单击它。

页面的

HTML 代码:

<fieldset id="wireless-24" class="left" style="display: block;">
                <div class="legend-edit text-orphan">
                    <legend>2.4 GHz network</legend><span>|</span><span id="edit-wireless-24"><a id="editWireless24Link" href="http://192.168.0.1/ui/1.0.99.162351/dynamic/home.html#">Edit</a></span>
                </div>
                <div class="row toggle-edit">
                    <label style="width: 126px;">Network:</label>
                    <label id="w-radio-enabled-text-24">Disabled</label> <!-- code sets the text to either Enabled or Disabled -->
                    <div class="cell" id="w-enabled-span-24">
                        <div class="check-item" style="">
                            <div><input type="checkbox" id="w-enabled-24" name="radio.band24.settings.isEnabled" class="ui-helper-hidden-accessible"><span class="ui-checkbox"></span></div>
                            <div><label for="w-enabled-24" class="ui-checkbox">Enabled</label></div>
                        </div>
                    </div>
                </div>

Network是我要单击的字段。我正在使用Selenium和python。

我尝试了以下操作:

browser.find_element_by_id("w-radio-enabled-text-24").send_keys("Enabled")
browser.find_element_by_text("Network").click() 

1 个答案:

答案 0 :(得分:0)

首先,您尝试$ git branch <feature> origin/master # make new feature branch $ git log ..origin/master # see what is new in the upstream $ git diff origin/master...HEAD # see your changes send_keys标记,这是怎么回事。您可以labelsend_keys标记或等效标记。其次,您正在尝试单击input,从我的角度来看,这也是无效的。我相信您想要这样的东西:

label

我还要添加checkbox = driver.find_element_by_id('w-enabled-24') # locate checkbox if not checkbox.is_selected(): # check if checkbox is already selected checkbox.click() # if not, click on it ,以确保该元素可见并且可以按如下方式单击:

WebDriverWait

这将至少等待10秒钟,直到可以单击复选框。完整的代码如下:

checkbox = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "w-enabled-24")))

注意: ,您必须添加一些导入:

checkbox = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "w-enabled-24")))
if not checkbox.is_selected():
    checkbox.click()

有关from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.by import By 的更多信息,您将找到here