我正在尝试自动加载和配置网页。 在此页面上,我试图检查复选框的状态,如果未选中,请单击它。
页面的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()
答案 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
标记,这是怎么回事。您可以label
至send_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。