Selenium2+python自動化-操作瀏覽器基本方法


前言
  從這篇開始,正式學習selenium的webdriver框架。我們平常說的 selenium自動化,其實它並不是類似於QTP之類的有GUI界面的可視化工具,我們要學的是webdriver框架的API。本篇主要講如何用Python調用webdriver框架的API,對瀏覽器做一些常規的操作,如打開、前進、后退、刷新、設置窗口大小、截屏、退出等操作。

 

一、打開網站
1.第一步:從selenium里面導入webdriver模塊;
2.打開Firefox瀏覽器(Ie和Chrome對應下面的);
3.打開百度網址;

from selenium import webdriver  # 導入模塊

driver = webdriver.Firefox()    # 火狐瀏覽器
# driver = webdriver.Chrome()   # 谷歌瀏覽器
# driver = webdriver.Ie()       # IE瀏覽器
driver.get("https://www.baidu.com/")

二、設置休眠
1.由於打開百度網址后,頁面加載需要幾秒鍾,所以最好等到頁面加載完成后再繼續下一步操作;
2.導入time模塊,time模塊是Python自帶的,所以無需下載;
3.設置等待時間,單位是秒(s),時間值可以是小數也可以是整數;

from selenium import webdriver
import time         # 導入時間模塊
driver = webdriver.Firefox()    # 火狐瀏覽器
driver.get("https://www.baidu.com/")
time.sleep(1)   # 設置休眠時間(秒),也可以為小數

三、頁面刷新
1.有時候頁面操作后,數據可能沒及時同步,需要重新刷新;
2.這里可以模擬刷新頁面操作,相當於瀏覽器輸入框后面的刷新按鈕;

from selenium import webdriver
import time
driver = webdriver.Firefox()    # 火狐瀏覽器
driver.get("https://www.baidu.com/")
time.sleep(1)   # 設置休眠時間(秒)
driver.refresh()    # 刷新操作

四、前進和后退
1.當在一個瀏覽器打開兩個頁面后,想返回上一頁面,相當於瀏覽器左上角的左箭頭按鈕;
2.返回到上一頁面后,也可以切換到下一頁,相當於瀏覽器左上角的右箭頭按鈕;

from selenium import webdriver
import time

driver = webdriver.Firefox()    # 火狐瀏覽器
driver.get("https://www.baidu.com/")
time.sleep(5)   # 設置休眠時間(秒)
driver.get("https://www.hao123.com/")
time.sleep(5)   # 設置休眠時間(秒)
driver.back()       # f返回上一頁
driver.forward()    # 下一頁

五、設置窗口大小
1.可以設置瀏覽器窗口大小,如設置窗口大小為手機分辨率540*960;
2.也可以最大化窗口;

from selenium import webdriver
import time

driver = webdriver.Firefox()    # 火狐瀏覽器
driver.get("https://www.baidu.com/")
time.sleep(5)   # 設置休眠時間(秒)
driver.set_window_size(540, 960)    # 設置窗口大小
driver.maximize_window()    # 窗口最大化

六、退出
1.退出有兩種方式,一種是close;另外一種是quit;
2.close用於關閉當前窗口,當打開的窗口較多時,就可以用close關閉部分窗口;
3.quit用於結束進程,關閉所有的窗口;
4.最后結束測試,要用quit。quit可以回收c盤的臨時文件;

from selenium import webdriver
import time

driver = webdriver.Firefox()    # 火狐瀏覽器
driver.get("https://www.baidu.com/")
time.sleep(5)   # 設置休眠時間(秒)
driver.close()  # 關閉當前窗口
driver.quit()   # 退出瀏覽器

 

七、鼠標事件操作

1.鼠標不僅僅可以點擊(click),鼠標還有其它的操作,如:鼠標懸停在某個元素上,鼠標右擊,鼠標按住某個按鈕拖到;

2.鼠標事件需要先導入模塊:“from selenium.webdriver.common.action_chains import ActionChains”

3.鼠標移動懸停: move_to_element

4.執行: perform

# 這里以百度頁面設置按鈕為例
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
driver.get("https://www.baidu.com")
# 定位設置元素
sz = driver.find_element_by_link_text("設置")
# 鼠標事件:移動操作
ActionChains(driver).move_to_element(sz).perform()

5.除了常用的鼠標懸停事件外,還有:

#  執行: perform
#  右擊: context_click()
#  雙擊: double_ click()
#  拖動: drag_and_drop(source, target)   # source:鼠標拖動的源元素。  Target:鼠標釋放的目標元素。

依葫蘆畫瓢,替換上面案例中對應的鼠標事件就可以了。

 

八、鍵盤事件操作

1.selenium提供了一整套的模擬鍵盤操作事件,一下講了常用的鍵盤事件;

2.模擬鍵盤的操作需要先導入鍵盤模塊:“from selenium.webdriver.common.keys import Keys”

3.模擬回車enter鍵,可以用send_keys(Keys.ENTER);

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

driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
# 定位元素
driver.find_element_by_xpath("//*[@id='kw']").send_keys("文本內容")
# 模擬鼠標回車按鍵
driver.find_element_by_xpath("//*[@id='kw']").send_keys(Keys.ENTER)

4.其它常見的鍵盤操作:

1、 F5鍵: send_keys(Keys.F5)
2、 F12鍵: send_keys(Keys.F12)
3、 F1鍵: send_keys(Keys.F1)    # F1 ~ F12鍵使用方式一樣
4、 空格鍵(space):send_keys(Keys.SPACE)
5、 回退鍵(Esc): send_keys(Keys.ESCAPE)
6、 回車鍵(Enter):send_keys(Keys.ENTER)
7、 刪除鍵(BackSpace):send_keys(Keys.BACK_SPACE)
8、 制表鍵(Tab):send_keys(Keys.TAB)
9、 全選(Ctel+A): send_keys(Keys.CONTROL, ‘a’)
10、復制(Ctel+C): send_keys(Keys.CONTROL, ‘c’)
11、粘貼(Ctel+V): send_keys(Keys.CONTROL, ‘v’)
12、剪切(Ctel+X): send_keys(Keys.CONTROL, ‘x’)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM