UI自动化测试-浏览器初始化操作

UI自动化测试-浏览器初始化操作

前言:最近在学习巩固一些pytest+selenium的测试框架中的知识点,把学习过程中一些常用的操作做一下分享。

废话不多说,直接上代码:

 def initDriver(self):
        # 加启动配置
        try:
            projectDir = os.path.dirname(__file__)[:-6]
            downloadPath = projectDir + 'Download'
            options = webdriver.ChromeOptions()
            options.add_argument('disable-infobars')
            options.add_argument('--lang=zh-CN')
            # options.add_argument('--headless')
            options.add_argument('--no-sandbox')
            options.add_argument('--disable-gpu')
            options.add_argument('window-size=1920x1080')
            system = sys.platform
            if 'win' in system:
                driverPath = projectDir + 'driver/' + 'chromedriver.exe'
            elif 'linux' in system:
                driverPath = '/usr/bin/chromedriver'
            else:
                assert False, '其他运行环境需要进行配置!'
            prefs = {"download.default_directory": downloadPath,
                     "profile.default_content_setting_values.automatic_downloads": 1,
                     "download.prompt_for_download": False,
                     "directory_upgrade": True,
                     "safebrowsing.enabled": True,
                     "profile.default_content_setting_values": {"notifications": 2}
                     }
            options.add_experimental_option('prefs', prefs)
            driver = webdriver.Chrome(driverPath, options=options)
            driver.maximize_window()
            generalFunction = GeneralFunction()
            path = os.path.dirname(os.path.dirname(__file__)) + '/ConfigData/LoginData.yaml'
            loginData = generalFunction.readYaml(path)
            driver.get(loginData['baseUrl'])
            driver.find_element(By.XPATH, "//input[@placeholder='请输入账号']").send_keys(loginData['username'])
            driver.find_element(By.XPATH, "//input[@placeholder='请输入密码']").send_keys(loginData['password'])
            driver.find_element(By.XPATH, "//button//span[contains(text(),'登 录')]").click()
            time.sleep(10)
        except Exception as Error:
            assert False, '实例化浏览器失败,错误信息为:%s' % Error
        else:
            return driver

这里主要分享下chromeOptions的一些常用方法,chromeOptions 是一个配置 chrome 启动是属性的类,通过这个类,我们可以为chrome配置如下参数:

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)

这个地方主要使用了options.add_argument(添加启动参数),初始化浏览器中常用的操作:

options.add_argument('--headless')  #无头模式运行
options.add_argument('--disable-gpu') #设置没有使用gpu
options.add_argument('window-size=1920x1080')  # 设置浏览器窗口大小

(注:推荐进行自动化测试时使用无头模式运行,无头模式下的测试速度通常比普通模式更快。这对于大规模测试或需要频繁执行的测试场景非常有利;同时不会弹出可见的浏览器窗口,可以在后台静默运行,防止在运行脚本的过程中误操作到浏览器,影响测试;使用Headless模式可以节省系统资源,提高性能和稳定性

指定浏览器的默认下载目录(在自动化测试中涉及到下载文件、图片后的验证操作,指定文件路径后方便查找对应的文件)

projectDir = os.path.dirname(__file__)[:-6]
downloadPath = projectDir + 'Download'
prefs = {"download.default_directory": downloadPath,
         "profile.default_content_setting_values.automatic_downloads": 1,
         "download.prompt_for_download": False,
         "directory_upgrade": True,
         "safebrowsing.enabled": True,
         "profile.default_content_setting_values": {"notifications": 2}
         }
options.add_experimental_option('prefs', prefs)  #添加实验设置参数

今天分享到这儿,存在不足的地方还请大家多多指教!!!

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值