1. 程式人生 > 其它 >Selenium系列3-瀏覽器物件操作

Selenium系列3-瀏覽器物件操作

前言

在我們日常進行UI自動化工作時,對瀏覽器物件的操作是所有用例的基礎,而selenium的API,可以分為三大類:

  • 對瀏覽器本身的相關操作
  • 對瀏覽器頁面中元素的定位
  • 對定位後元素的操作(如點選、輸入等)

所以在深入瞭解selenium前,我們先來看看selenium中是如何操作瀏覽器本身的

匯入selenium庫

要使用selenium,必須先匯入Selenium庫

# 匯入selenium庫
from selenium import webdriver

建立瀏覽器物件

建立一個瀏覽器物件

# 語法:driver = webdriver.xxx()     xxx為對應瀏覽器
driver = webdriver.Chrome()

瀏覽器視窗大小設定

我們在測試過程中,經常會有改變瀏覽器大小的場景,可以使用set_window_size()方法改變瀏覽器的大小

如果需要獲取瀏覽器當前的大小數值,可以使用get_window_size()

也可以使用maximize_window()將瀏覽器最大化

# 設定瀏覽器尺寸
# 寬600、高1000
driver.set_window_size(600,1000)

# 獲取瀏覽器尺寸
driver.get_window_size()		

# 瀏覽器視窗最大化(常用)
driver.maximize_window()

瀏覽器位置設定

那麼如果需要移動瀏覽器的位置改如何實現呢,selenium提供了set_window_position()

方法改變瀏覽器的位置

如果需要獲取瀏覽器當前的位置,可以使用get_window_position()

顯示器以左上角為(0,0),所有的位置操作都是相對於顯示器左上角展開的位移操作

# 獲取瀏覽器的當前位置
driver.get_window_position()		

# 設定瀏覽器的位置
driver.set_window_position(x,y)

訪問被測網址

# 請求被測網址
# 語法:driver.get(url)	
url = "http://www.baidu.com"
driver.get(url)

瀏覽器頁面前進、後退和重新整理

# 頁面前進
driver.forward()

# 頁面後退
driver.back()

# 頁面重新整理
driver.refresh()

關閉瀏覽器

在測試用例執行結束之後,我們需要關閉瀏覽器,selenium提供了兩種關閉瀏覽器的方法

  • 關閉當前視窗
# 關閉當前瀏覽器視窗
driver.close()
  • 關閉視窗並關閉瀏覽器驅動
# 即關閉瀏覽器視窗,同時關閉瀏覽器驅動
driver.quit()

示例

通過以下的例子來看看這些方法的實際使用

# 匯入selenium庫
from time import sleep
from selenium import webdriver

# 建立瀏覽器物件
driver = webdriver.Chrome()

# 設定瀏覽器視窗大小
driver.set_window_size(480, 800)
# 獲取當前瀏覽器視窗大小
s = driver.get_window_size()
print(s)
# 最大化瀏覽器視窗
driver.maximize_window()
sleep(3)

# 獲取當前瀏覽器位置
p1 = driver.get_window_position()
print(p1)
# 移動瀏覽器位置
driver.set_window_position(400, 300)
p2 = driver.get_window_position()
print(p2)
sleep(3)

# 訪問被測地址
driver.get("https://www.baidu.com")
sleep(2)
driver.get("https://www.jd.com")
sleep(2)
driver.get("https://www.taobao.com")
sleep(2)
# 使用前進,後退,重新整理命令
# 前進
driver.back()  # 後退到京東
sleep(2)
driver.back()  # 後退到百度
sleep(2)
# 後退
driver.forward()  # 前進到京東
sleep(2)
driver.forward()  # 前進到淘寶
sleep(2)
# 重新整理
driver.refresh()  # 保持在淘寶頁面
sleep(2)
# 關閉瀏覽器
driver.quit()

參考

https://www.cnblogs.com/liuyuelinfighting/p/14923204.html