1. 程式人生 > >11、Selenium + Python 實現 UI 自動化測試-操作按鈕、複選框

11、Selenium + Python 實現 UI 自動化測試-操作按鈕、複選框

一、按鈕

input type=button


.click()方法,實現點選按鈕功能

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/clicks.htm")
driver.find_element_by_xpath("/html/body/form/input[3]").click()
sleep(2)
text = driver.find_element_by_name("t2").get_attribute('value'
) if text == '[CLICK]': print('pass') driver.quit()
注:該頁面,點選click me按鈕後,上面輸入框會顯示文字。

二、提交按鈕

 input type=submit


from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()driver.get("http://www.baidu.com/")
driver.find_element_by_id('kw').send_keys('storm啊')
driver.find_element_by_id('su'
).click()sleep(3) driver.quit()

三、單選按鈕 

input tpye=radio


from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/clicks.htm")

ele = driver.find_element_by_xpath('/html/body/form/input[7]')#注意這種xpath寫法很不好
ele.click()
sleep(2)
if ele.is_selected():
print('pass') sleep(3) driver.quit()
兩個方法:

(1).click()

(2).is_selected() ,判斷是否選中

四、複選框 

input type=check box


from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/clicks.htm")

ele = driver.find_element_by_xpath('/html/body/ul/li/a/label/input')#注意這種xpath寫法很不好
ele.click()
sleep(2)
if ele.is_selected():
print('pass')
sleep(3)
ele.send_keys(Keys.SPACE)  #自己可以手動實驗下,按space鍵,可以選中或取消選中複選框
sleep(3)
driver.quit()

如果我們想選中一個介面所有的複選框怎麼辦?或者依次點選一組單選按鈕怎麼辦?先來觀察一下,一組單選按鈕或者複選框,name是相同的


我們通過name取一組button,放到一個list中,然後for迴圈操作

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("http://sahitest.com/demo/keypress.htm")

eles = driver.find_elements_by_name('a')
for ele in eles:
ele.click()
    sleep(2)
driver.quit()

注意:

上面使用了一次傳送SPACE 鍵來取消選中複選框

遇到過一次,元素被其它控制元件遮擋(元素能定位到),使用點選無法操作元素,報錯

採用傳送空格鍵,成功操作了元素。——很經典的一個坑。