1. 程式人生 > 其它 >selenium元素操作--判斷元素是否可點選、可選中、是否可見

selenium元素操作--判斷元素是否可點選、可選中、是否可見

判斷元素是否可以點選

判斷元素是否可以點選,WebElement物件呼叫 is_enabled() 方法。

 is_enabled() 方法返回一個布林值,若可點選返回: True 。若不可點選則返回: False 

例項1:

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,故可以點選。

例項2:

在實際測試中,會遇到某些按鈕置灰的情況:

1、比如,登入場景,只輸入使用者名稱或只輸入密碼時,“登入”按鈕灰顯,不可點選。

2、再比如,手機號碼註冊時,未輸入正確長度手機號碼時註冊按鈕置灰,對應程式碼:

<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   #手機號碼未輸入正確,按鈕應該灰顯

判斷元素是否可見

判斷元素是否可見,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,故可見。

判斷元素是否可被選中

判斷元素是否被選中,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_disabled 屬性,則是不可點選,否則就是可點選。

2、元素若有 is_display:none 屬性,則是不可見的,否則就是可見的。

3、元素若有 selected 屬性,則是已被選擇。