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()