1. 程式人生 > 其它 >使用selenium實現UI自動化(四)

使用selenium實現UI自動化(四)

假如有這麼種場景,我們在做自動化的時候,需要對某個步驟進行除錯,但是這個步驟需要很多前置條件,那麼為了快速實現除錯,我們應該怎麼做呢?selenium提供了瀏覽器的debug模式,可以基於現在瀏覽器的情況進行下一步操作

使用步驟:

  • 退出當前瀏覽器,關閉所有視窗
  • 找到瀏覽器的安裝路徑,配置成環境變數
  • 啟動本地debug模式,chrome --remote-debugging-port=9888
  • 編寫程式碼
#!/usr/bin/env python
# -*-coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import
By import pytest class TestWindow: def teardown(self): self.driver.quit() def test_liu(self): opt = webdriver.ChromeOptions() opt.debugger_address = '127.0.0.1:9888' self.driver = webdriver.Chrome(options=opt) self.driver.find_element(by=By.LINK_TEXT, value="
hao123推薦").click() handles = self.driver.window_handles print("所有的視窗:{}".format(handles)) self.driver.switch_to.window(handles[1]) self.driver.find_element(by=By.LINK_TEXT, value="娛樂").click() print("第二次切換後的視窗:{}".format(self.driver.current_window_handle)) self.driver.switch_to.window(handles[0])
print("最後切換會第一個視窗:{}".format(self.driver.current_window_handle))

如上程式碼會在原有的瀏覽器上執行,這樣就實現了瀏覽器的複用,我們在除錯程式碼時就很方便

如何設計自己的UI自動化框架

  • 梳理業務邏輯,確定好要自動化的用例
  • 根據介面進行封裝PO類和方法,這裡自行參考selenium官網的PO設計原則,具體的程式碼可以先用pass代替
  • 編寫用例
  • 實現page內的方法,與自動化框架進行結合
  • 除錯程式碼
  • 把公共的方法封裝到base類,優化程式碼

到此,基本的UI自動化過程完畢,後續的就是實踐過程,可以靈活的在自己的專案中使用