1、判斷元素是否可以點擊
判斷元素是否可以點擊,WebElement對象調用is_enabled()
is_enabled()方法返回一個布爾值,若可點擊返回:True。若不可點擊則返回:False
driver = webdriver.Chrome() # 打開百度 driver.get('https://www.baidu.com/') # 定位百度首頁的地圖按鈕 elm = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[3]') # 判斷元素是否可以點擊 answer = elm.is_enabled() print(answer) time.sleep(3) driver.quit()
執行結果:True,故可以點擊
在實際測試中,會遇到某些按鈕置灰的情況:
比如,登錄場景,只輸入用戶名或只輸入密碼時,“登錄”按鈕灰顯,不可點擊。
再比如,手機號碼注冊時,未輸入正確長度手機號碼時注冊按鈕置灰,對應代碼:
<button class="btn submit" disabled='' style="background:rgp(204,204,204);">下一步</button>
輸入正確手機號碼后,按鈕變成可點擊狀態,對應代碼:
<button class="btn submit" style="background:rgp(51, 172, 55);">下一步</button>
此時測試用例中就可以斷言未輸入正確長度手機號碼時按鈕是否置灰:
btnElm = driver.find_element_by_xpath('')
result = btnElm.is_enabled()
print(result)
assert not result #手機號碼未輸入正確,按鈕應該灰顯
2、判斷元素是否可見
判斷元素是否可見,WebElement對象調用is_displayed()
is_displayed()方法返回一個布爾值,若可見則返回:True。若不可見則返回:False
driver = webdriver.Chrome() # 打開百度 driver.get('https://www.baidu.com/') # 定位百度首頁的地圖按鈕 elm = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[3]') # 判斷元素是否可見 answer = elm.is_displayed() print(answer) driver.quit()
執行結果:True,故可見
3、判斷元素是否可被選中
判斷元素是否被選中,WebElement對象調用is_selected()
is_selected()方法返回一個布爾值,若可見則返回:True。若不可見則返回:False
driver = webdriver.Chrome() # 打開百度 driver.get('https://www.baidu.com/') # 定位百度首頁的地圖按鈕 elm = driver.find_element_by_xpath('//*[@id="s-top-left"]/a[3]') # 判斷元素是否可選中 answer = elm.is_selected() print(answer) driver.quit()
執行結果:False,說明未被選中
總結:
1、元素若有is_enabled屬性,則是不可點擊,否則就是可點擊
2、元素若有is_display:none屬性,則是不可見的,否則就是可見的
3、元素若有selected屬性,則是已被選擇
___________________________________________
參考博客:http://www.manongjc.com/detail/29-slnynphhxwzutgl.html
