如何处理python和selenium POM框架中的SSL证书错误?



我对这一切都很陌生,但我已经制作了一个混合框架(python, selenium, pytest,页面对象模型),用于实践自动化,并使用SSL证书以及如何忽略证书错误。我使用https://expired.badssl.com站点用

进行测试我发现使用的代码是:

options = self.driver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
self.driver.Chrome(chrome_options=options)

,我只是不确定它需要去哪里,如果它甚至是正确的代码使用。这就是我的conftest.py文件中的内容:

from selenium import webdriver
import pytest
from selenium.webdriver.chrome import options

@pytest.fixture()
def setup(browser):
if browser == 'chrome':
driver = webdriver.Chrome()
elif browser == 'firefox':
driver = webdriver.Firefox()
else:
driver = webdriver.Chrome()
return driver

# have to include --browser (opyion) otherwise will return error
# added else, if no browser is specified, default to chrome

def pytest_addoption(parser):  # this will get the value from the cli/hooks
parser.addoption("--browser")

@pytest.fixture()
def browser(request):  # this will return the browser to the setup method
return request.config.getoption("--browser")

####### Pytest HTML reports #######
# hook for adding environment info to html report
def pytest_configure(config):
config._metadata['Project Name'] = 'Hybrid Framework'
config._metadata['Module Name'] = 'Customers'
config._metadata['Tester'] = 'Amar'
# hook for delete/modify environment info to html report
@pytest.mark.optionalhook
def pytest_metadata(metadata):
metadata.pop("JAVA_HOME", None)
metadata.pop("Plugins", None) 

我已经创建了一个'sslcert_page.py'页面对象类和一个'testrongslcert.py'。我已经尝试将代码包含在测试文件中,所以它看起来像这样:


from selenium.webdriver.chrome import options
from selenium.webdriver.chrome.options import Options
from pageObjects.SSLCertificate.sslcert_page import SSLCertHandling
from utilities.readProperties import ReadConfig

class Test_sslcertf:
baseURL = ReadConfig.getApplicationURL()
# logger = LogGen.loggen()
def test_1(self, setup):
# self.logger.info("************* Test_001_Login *************")
self.driver = setup
options = self.driver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
self.driver.Chrome(chrome_options=options)
self.driver.get(self.baseURL)
self.driver.maximize_window()
sleep(5)
self.sslcert = SSLCertHandling
#self.sslcert.ignoreCert()

但是当我在终端中执行测试时,它甚至没有加载页面。

希望在这方面有更多知识的人可以帮助我。在没有设置页面对象模型的情况下,代码很好。谢谢!

caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome('./chromedriver', desired_capabilities=caps)
driver.get(
"https://untrusted-root.badssl.com/")

你必须使用所需的能力

最新更新