我想弄清楚我們網站上的復選框是否處于選中狀態。復選框的 HTML 如下所示:
<input id="ID_StaffIsRostered" name="ID_Rostering" type="checkbox" checked="" data-toggle="toggle" data-onstyle="success" data-size="sm" data-on="Yes" data-off="No" onchange="toggleRosteredStaff()">
我試過通過這些定位器找到這個:
- (By.ID, "ID_StaffIsRostered")
- (by.XPATH, "input[@name='ID_Rostering']"
- (By.XPATH,"///*[@id='ID_StaffIsRostered']")
- (by.XPATH,"/html/body/div[1]/div/div[2]/div/div/div/div[2]/table[3]/tbody/tr/td/div[1]/ div[2]/div/form/div/div[1]/div/label/div/input")
- (By.CSS_SELECTOR,"label:nth-child(1) > .btn-light .toggle-off")
- (by.XPATH,"//form[@id='ID_Form_Rostering']/div/div/div/label/div/div/label[2]")
- (by.XPATH,"//div/div/div/label/div/div/label[2]")
到目前為止沒有任何效果。但是,我可以選擇包含復選框的 div,以及復選框之間切換的標簽,具體取決于它切換到的內容,HTML 是:
<div class="toggle btn btn-success btn-sm" data-toggle="toggle" style="width: 7.5px; height: 26px; min-width: 38px;">
和標簽:
<div class="toggle-group"><label class="btn btn-success btn-sm toggle-on">Yes</label><label class="btn btn-light btn-sm toggle-off">No</label><span class="toggle-handle btn btn-light btn-sm"></span></div>
我可以通過哪些替代方法來實作這一目標?目前我正在使用 Selenium 4.0.0 和 Python 3.9
uj5u.com熱心網友回復:
- checkbox的checked引數會顯示是否被選中,可以通過xpath(.../input[@checked])獲取該引數的狀態
- 仔細觀察網站法律,勾選的復選框是否有特殊狀態,如顏色、文字等。
uj5u.com熱心網友回復:
我能想到的方法有很多。
element.get_attribute('checked')
或者你可以查詢javascript。
return document.querySelector('input[name="ID_Rostering"]').checked;
至于嘗試 xpath 但它并不總是可靠的。
//input[@type='checkbox' and not(@checked)]
對于未檢查
//input[@type='checkbox' and @checked)]
對于檢查
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/347504.html
