Selenium中web三大操做(鼠標操做、下拉列表操做、按鍵操做)

1、鼠標操做web

參數都是元素對象,除了與座標有關的函數外;函數

函數名:ActionChains 動做鏈ui

常見的鼠標操做:spa

1)懸浮 move_to_element
2)點擊 click
3)雙擊 double_click
4)右鍵 context_click
5)拖拽 drag_and_drop
6)暫停 pause
7)輸入 send_keys

操做步驟:code

1)將要執行全部鼠標的動做,先放到一個列表當中。orm

2)perform() : 執行鼠標動做。對象

示例:blog

 1 示例:
 2 在百度首頁中的設置中找到高級設置((鼠標懸浮在設置上後出現高級設置))
 3 
 4 import time
 5 
 6 from selenium import webdriver
 7 from selenium.webdriver.common.action_chains import ActionChains
 8 from selenium.webdriver.common.by import By
 9 from selenium.webdriver.support.wait import WebDriverWait
10 from selenium.webdriver.support import expected_conditions as EC
11 
12 driver = webdriver.Chrome()
13 driver.maximize_window()
14 driver.get("https://www.baidu.com/")
15 
16 # 一、找到鼠標要操做的元素(百度首頁的設置)
17 loc = (By.XPATH, '//div[@id="u1"]//a[@name="tj_settingicon"]')
18 ele = driver.find_element(*loc)
19 ele.click()
20 
21 # 二、實例化Actonchains類
22 ac = ActionChains(driver)
23 
24 # 三、調用鼠標行爲(懸浮)
25 ac.move_to_element(ele)
26 
27 # 四、調用perform()來執行鼠標動做
28 ac.perform()
29 time.sleep(2)
30 
31 # # 注: 若將二、三、4操做結合到一塊兒
32 # ActionChains(driver).move_to_element(ele).perform()
33 
34 # 五、等待 下拉列表中元素可見
35 loc2 = (By.XPATH, '//a[text()="高級搜索"]')
36 WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc2))
37 
38 # 六、選擇想要操做的元素
39 # 觸發高級搜索內容出現
40 driver.find_element(*loc2).click()

 

2、下拉列表操做(Select類)element

使用Select類進行操做get

1)初始化,傳select對象;

2)根據下標、value屬性、文本內容來選擇值;

示例:

上面案例的基礎上操做(對百度高級設置中的文件格式下拉框進行選擇操做)

 1 from selenium.webdriver.support.select import Select
 2 
 3 # 一、初始化,傳select對象
 4 loc3 = (By.XPATH, '//select[@name="ft"]')
 5 WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc3))
 6 select_element = driver.find_element(*loc3)
 7 
 8 s = Select(select_element)
 9 
10 # 二、根據下標 value屬性、文本內容來選擇值
11 # 根據下標選值
12 s.select_by_index(6)
13 time.sleep(3)
14 # 根據value屬性選值
15 s.select_by_value("doc")
16 time.sleep(3)
17 # 根據文件內容選值
18 s.select_by_visible_text('RTF 文件 (.rtf)')
19 time.sleep(3)
20 
21 # 三、關閉會話
22 time.sleep(5)
23 driver.quit()

 

3、鍵盤操做(Keys類)

Keys類中處理特殊鍵

示例:

在百度首頁找到搜索輸入框,輸入內容後,點擊百度一下的鼠標操做使用enter鍵替代

 1 import time
 2 from  selenium import webdriver
 3 from  selenium.webdriver.common.keys import  Keys
 4 
 5 # 一、打開訪問百度首頁
 6 driver = webdriver.Chrome()
 7 driver.maximize_window()
 8 driver.get("http://www.baidu.com")
 9 # 二、找到搜索輸入框,輸入selenium webdriver,按enter鍵進行搜索
10 element = driver.find_element_by_id("kw")
11 element.send_keys("selenium webdriver", Keys.ENTER)
12 element.send_keys(Keys.CONTROL,"c")
13 
14 # 三、關閉會話
15 time.sleep(5)
16 driver.quit()
相關文章
相關標籤/搜索