selenium---勾选框处理
在web自動(dòng)化中,會(huì)遇到一些勾選框的操作,在正常操作下,我們只要點(diǎn)擊勾選框即是勾選,再次點(diǎn)擊則取消勾選,那selenium如何操作勾選框呢? 其實(shí)和正常一樣,我們只要定位到勾選框后,就可以進(jìn)行點(diǎn)擊。
勾選框
首先我們看下什么是勾選框?勾選框在HTML中長(zhǎng)什么樣子,這樣才能方便我們進(jìn)行定位操作。。
<html> <body> <form > <p>請(qǐng)選擇你關(guān)注測(cè)試-安靜了嗎?</p> <p><input type="checkbox" name="vehicle" value="Bike" /> 已經(jīng)關(guān)注了!/p> <p><input type="checkbox" name="vehicle" value="Car"/> 沒有關(guān)注!</p> <p><input type="checkbox" name="vehicle" value="name"/> 已經(jīng)關(guān)注,并跟著安靜學(xué)習(xí)一段時(shí)間了</p> </form> </body> </html>
定位方法:
1、勾選一個(gè):通過元素定位方式選擇value值,然后進(jìn)行定位進(jìn)行點(diǎn)擊操作
2、全部勾選:定位共同參數(shù),通過find_elements的方法循環(huán)全部點(diǎn)擊
思路就是定位到想要勾選的內(nèi)容,然后直接點(diǎn)擊就完事了,這里要屬于find_elements不能直接點(diǎn)擊,因?yàn)槎ㄎ坏氖菑?fù)數(shù),selenium不知道點(diǎn)擊哪一個(gè),我們可以通過for循環(huán)進(jìn)行點(diǎn)擊
from selenium import webdriver
import time
driver = webdriver.Chrome()
path = r'E:webcheckbox.html'
driver.get(path)
# 定位全部勾選框,然后進(jìn)行循環(huán)點(diǎn)擊
t = driver.find_elements_by_xpath('//*[@type="checkbox"]')
for i in t:
i.click()
time.sleep(2)
# 取消定位第一個(gè)
driver.find_element_by_css_selector('input[value=Bike]').click()
判斷勾選框是否選中
勾選框,有的頁面剛進(jìn)去其實(shí)就已經(jīng)勾選了,我們可以進(jìn)行判斷,如果勾選了,我們就直接進(jìn)行下面的操作,哪么問題來了?我們?nèi)绾闻袛嘣厥欠癖还催x?這里可以理解成元素是否被選中,哪么在selenium中是不是有個(gè)判斷元素有沒有被選中的方法?is_selected()表示判斷元素有沒有被選中,如果選中打印True,沒有選中打印False
from selenium import webdriver
driver = webdriver.Chrome()
path = r'E:webcheckbox.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('勾選框已經(jīng)選中')
else:
print('勾選框沒有選中')
這里安靜判斷沒有被選中的,可想而知,結(jié)果是“勾選框沒有選中”
安靜通過小小的例子,認(rèn)識(shí)了什么是勾選框以及如何定位到勾選框和判斷勾選框是否選中的情況,最多的還是需要大家多寫多練,這樣才能孰能生巧。
安靜寫的文章如果對(duì)您有幫助,點(diǎn)個(gè)關(guān)注,持續(xù)更新。不懂的或者寫錯(cuò)的地方,可以下方進(jìn)行留言。
總結(jié)
以上是生活随笔為你收集整理的selenium---勾选框处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu无法正常输入英文单引号符号
- 下一篇: 微信小程序开发规范文档-WXML类选择器