selenium用法講解:
(1)瀏覽器操作:
主要講如何用Python調(diào)用webdriver框架的API,對(duì)瀏覽器做一些常規(guī)的操作,如打開、前進(jìn)、后退、刷新、設(shè)置窗口大小、截屏、退出等操作。
WebDriver提供了maxmize_window()方法使打開的瀏覽器全屏顯示,其用法與set_window_size()相同, 但它不需要參數(shù)。
WebDriver提供了back和forward方法來模擬后退和前進(jìn)按鈕。
WebDriver提供了refresh()方法模擬刷新。
WebDriver提供了截圖函數(shù)get_screenshot_as_file()來截取當(dāng)前窗口。
如:driver.get_screenshot_as_file(r"C:\Users\baidu.png")
WebDriver還提供了close方法,用來關(guān)閉當(dāng)前窗口。
WebDriver還提供了quit方法,用來退出驅(qū)動(dòng)并關(guān)閉所有關(guān)聯(lián)的窗口。
見下面例子:
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
sleep(3)
driver.get("https://blog.csdn.net/")
sleep(3) # 等待3s后刷新頁面
driver.refresh() # 頁面刷新refresh()
# 1.想返回上一頁面,相當(dāng)于瀏覽器左上角的左箭頭按鈕,driver.back()
# 2.返回到上一頁面后,也可以切換到下一頁,相當(dāng)于瀏覽器左上角的右箭頭按鈕,driver.forward()
driver.back() # 返回上一頁
sleep(5)
driver.forward() # 返回下一頁
driver.set_window_size(540,960) # 設(shè)置窗口大小為手機(jī)分辨率540*960
sleep(3)
driver.maximize_window()
driver.get_screenshot_as_file("cr1.png") # 當(dāng)前路徑下保存截圖
# 截屏后可以設(shè)置制定的保存路徑+文件名稱+后綴
driver.quit()
# 結(jié)束進(jìn)程,關(guān)閉所有的窗口
(2)元素基本操作
clear(): 清除文本
send_keys ( * value): 模擬按鍵輸入
click(): 單擊元素
submit(): 提交表單
size: 返回元素的尺寸
text: 獲取元素的文本
current_url: 獲取當(dāng)前URL
title: 獲取元素的標(biāo)題
get_attribute(name):獲得屬性值
is_displayed():判斷該元素是否用戶可見
(3)鼠標(biāo)事件
在WebDriver,將這些關(guān)于鼠標(biāo)操作的方法封裝在ActionChains類提供:
click(on_element=None) ——單擊鼠標(biāo)左鍵
click_and_hold(on_element=None) ——點(diǎn)擊鼠標(biāo)左鍵,不松開
context_click(on_element=None) ——點(diǎn)擊鼠標(biāo)右鍵
double_click(on_element=None) ——雙擊鼠標(biāo)左鍵
drag_and_drop(source, target) ——拖拽到某個(gè)元素然后松開
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某個(gè)坐標(biāo)然后松開
move_by_offset(xoffset, yoffset) ——鼠標(biāo)從當(dāng)前位置移動(dòng)到某個(gè)坐標(biāo)
move_to_element(to_element) ——鼠標(biāo)移動(dòng)到某個(gè)元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移動(dòng)到距某個(gè)元素(左上角坐標(biāo))多少距離的位置
perform() ——執(zhí)行鏈中的所有動(dòng)作
release(on_element=None) ——在某個(gè)元素位置松開鼠標(biāo)左鍵
send_keys(*keys_to_send) ——發(fā)送某個(gè)鍵到當(dāng)前焦點(diǎn)的元素
send_keys_to_element(element, *keys_to_send) ——發(fā)送某個(gè)鍵到指定元素
使用的時(shí)候需導(dǎo)入:from selenium.webdriver.common.action_chains import ActionChains
(4)鍵盤事件
key_down(value, element=None) ——按下某個(gè)鍵盤上的鍵
key_up(value, element=None) ——松開某個(gè)鍵
send_keys(Keys.BACK_SPACE) 刪除鍵(backspace)
send_keys( Keys. SPACE) 空格鍵(space)
send_keys( Keys.TAB) 制表鍵(Tab)
send_keys( Keys. ESCAPE) 回退鍵(esc)
send_keys( Keys. ENTER) 回車鍵(enter)
send_keys(Keys.CONTROL,’a’) 全選(ctrl+A)
send_keys(Keys.CONTROL,’c’) 復(fù)制(ctrl+C)
send_keys(Keys.CONTROL,’x’) 剪切(ctrl+X)
send_keys(Keys.CONTROL,’v’) 粘貼(ctrl+v)
send_keys(keys.F1) 鍵盤F1
……
send_keys(keys.F12) 鍵盤F12
使用的時(shí)候需導(dǎo)入:from selenium.webdriver.common.keys import Keys