【问题标题】:Browser doesn't close after running first test data to run second test data运行第一个测试数据以运行第二个测试数据后浏览器不关闭
【发布时间】:2022-11-09 03:51:29
【问题描述】:

我尝试运行基于数据的测试,在每个数据之后,需要关闭浏览器,但它不会关闭。它也从第二行获取数据,但浏览器不会关闭以运行第二个测试用例。

代码如下:

import pytest
import softest
from ddt import ddt, data, unpack, file_data
from pages.homepage import Homepage
from pages.register import RegisterPage
    
from utilities.utils import Utils
    
    
@pytest.mark.usefixtures("setup")
@ddt
class TestRegister(softest.TestCase):
    log = Utils.custom_logger()

    @data(*Utils.read_data_from_excel("C:\\Users\\Bishal karki\\PycharmProjects\\Bizbazar\\testdata\\Register.xlsx","Sheet1"))
    @unpack
        
    def test_register(self,email,pass1,pass2,ftname,ltname,phnumber1,city,address,state,zipcode,phnumber2,testno):
        driver = self.driver
        hp = Homepage(driver)
        hp.form_location()
        rp = RegisterPage(driver)
        rp.registraionpage(email,pass1,pass2,ftname,ltname,phnumber1,city,address,state,zipcode,phnumber2,testno)

处理浏览器的代码是:

import pytest
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.firefox import GeckoDriverManager
from webdriver_manager.microsoft import EdgeChromiumDriverManager
    
    
@pytest.fixture(scope="class")
def setup(request, browser, url):
    if browser == "firefox":
        driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
    elif browser == "chrome":
        driver = webdriver.Chrome(ChromeDriverManager().install())
    elif browser == "edge":
        driver = webdriver.Edge(EdgeChromiumDriverManager().install())
    print("Browser Opened")
    driver.maximize_window()
    driver.get(url)
    request.cls.driver = driver
    yield
    driver.close()
    print('Browser Closed')   
    
    
def pytest_addoption(parser):
    parser.addoption("--browser")
    parser.addoption("--url")
    
@pytest.fixture(scope="class", autouse=True)
def browser(request):
    return request.config.getoption("--browser")
   
@pytest.fixture(scope="class", autouse=True)
def url(request):
    return request.config.getoption("--url")

【问题讨论】:

    标签: python selenium pytest


    【解决方案1】:

    我也遇到了同样的情况,你有答案吗?

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      相关资源
      最近更新 更多