selenium 多浏览器处理

开头

当我们做多浏览器自动化测试的时候,需要很多不同的浏览器,所以不同的参数对应不同的浏览器操作

目录结构

新建一个 base.py 文件, 通过 os 捕获到从命令行传进来的

import pytest
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import TouchActions
import os


class Base():
    def setup(self):
        browser = os.getenv("browser")
        if browser == 'edag':
            print('我是edag的驱动')
            # self.driver = webdriver.Edge()
        else:
            self.chrome_options = Options()
            self.chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")  # 指定配置好的 chrom
            self.chrome_options.add_experimental_option("w3c", False)
            self.chrome_driver = r"./chromedriver.exe"  # 驱动路径
            self.driver = webdriver.Chrome(self.chrome_driver, chrome_options=self.chrome_options)  # 加入驱动设置
            # self.driver.get('https://sahitest.com/demo/clicks.htm')  # 发起请求
            # self.driver.maximize_window()  # 设置为最大化
        self.driver.implicitly_wait(3)  # 添加一个隐式等待默认等待3秒

    def teardown(self):
        print('关闭浏览器')
        # time.sleep(1)
        # self.driver.quit()

新建一个 test_brow.py 文件,然后继承Base

from base import Base
import time
import pytest


class TestBrowser(Base):
    def test_brow(self):
        url = 'https://www.baidu.com/'
        self.driver.get(url)

在命令行中执行

browser=edag pytest -vs test_move.py

就可以将浏览器参数传进去

posted @ 2021-06-27 21:45  陈科科  阅读(120)  评论(0编辑  收藏  举报