1. 程式人生 > 實用技巧 >selenium---勾選框處理

selenium---勾選框處理

  在web自動化中,會遇到一些勾選框的操作,在正常操作下,我們只要點選勾選框即是勾選,再次點選則取消勾選,那selenium如何操作勾選框呢? 其實和正常一樣,我們只要定位到勾選框後,就可以進行點選。

勾選框

首先我們看下什麼是勾選框?勾選框在HTML中長什麼樣子,這樣才能方便我們進行定位操作。。

<html>
<body>
<form >
<p>請選擇你關注測試-安靜了嗎?</p>
  <p><input type="checkbox" name="vehicle" value="Bike" /> 已經關注了!/
p> <p><input type="checkbox" name="vehicle" value="Car"/> 沒有關注!</p> <p><input type="checkbox" name="vehicle" value="name"/> 已經關注,並跟著安靜學習一段時間了</p> </form> </body> </html>

定位方法:

1、勾選一個:通過元素定位方式選擇value值,然後進行定位進行點選操作

2、全部勾選:定位共同引數,通過find_elements的方法迴圈全部點選

思路就是定位到想要勾選的內容,然後直接點選就完事了,這裡要屬於find_elements不能直接點選,因為定位的是複數,selenium不知道點選哪一個,我們可以通過for迴圈進行點選

from selenium import webdriver
import time
driver = webdriver.Chrome()
path = r'E:\web\checkbox.html'
driver.get(path)
# 定位全部勾選框,然後進行迴圈點選
t = driver.find_elements_by_xpath('//*[@type="checkbox"]')
for i in t:
    i.click()
    time.sleep(
2) # 取消定位第一個 driver.find_element_by_css_selector('input[value=Bike]').click()

判斷勾選框是否選中

勾選框,有的頁面剛進去其實就已經勾選了,我們可以進行判斷,如果勾選了,我們就直接進行下面的操作,哪麼問題來了?我們如何判斷元素是否被勾選?這裡可以理解成元素是否被選中,哪麼在selenium中是不是有個判斷元素有沒有被選中的方法?is_selected()表示判斷元素有沒有被選中,如果選中列印True,沒有選中列印False

from selenium import webdriver
driver = webdriver.Chrome()
path = r'E:\web\checkbox.html'
driver.get(path)
t = driver.find_element_by_css_selector('input[value=name]').click()
# 判斷是否被選中
if driver.find_element_by_css_selector('input[value=Bike]').is_selected():
    print('勾選框已經選中')
else:
    print('勾選框沒有選中')

這裡安靜判斷沒有被選中的,可想而知,結果是“勾選框沒有選中”

安靜通過小小的例子,認識了什麼是勾選框以及如何定位到勾選框和判斷勾選框是否選中的情況,最多的還是需要大家多寫多練,這樣才能孰能生巧。

安靜寫的文章如果對您有幫助,點個關注,持續更新。不懂的或者寫錯的地方,可以下方進行留言。