使用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自动化过程完毕,后续的就是实践过程,可以灵活的在自己的项目中使用

posted @ 2022-05-13 16:33  逗蚂蚁  阅读(146)  评论(0)    收藏  举报