11、Selenium + Python 實現 UI 自動化測試-操作按鈕、複選框
阿新 • • 發佈:2018-12-30
一、按鈕
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'注:該頁面,點選click me按鈕後,上面輸入框會顯示文字。) if text == '[CLICK]': print('pass') driver.quit()
二、提交按鈕
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 鍵來取消選中複選框
遇到過一次,元素被其它控制元件遮擋(元素能定位到),使用點選無法操作元素,報錯
採用傳送空格鍵,成功操作了元素。——很經典的一個坑。