1. 程式人生 > 其它 >selenium 多瀏覽器處理

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

就可以將瀏覽器引數傳進去