Я новичок в Sellinium / Python и выполняю несколько упражнений. Я хочу запустить эту программу с помощью Inte rnet Explorer, поэтому в командной строке я дал следующую команду:
py.test -s -v mainTest.py --browser IE
Когда я запускаю вышеуказанную команду, она показывает ошибку как:
ОШИБКА: использование: py.test [параметры] [file_or_dir] [file_or_dir] [...] py.test: ошибка: нераспознанные аргументы: --browser IE inifile: None`` rootdir: C: \ Users \ Radha.Maravajhala \ PycharmProjects \ RadhaSelenium \ Tests
Не идентифицируется аргумент --browser.
Как я могу запустить мою программу с указанным браузером c в качестве аргумента в команде py.test. Пожалуйста, помогите.
Мой код:
mainTest.py
import os
import pytest
import unittest
from executionEngine.DriverScript import driverScript
from Utilities.Constants import Constants
from selenium import webdriver
class mainTest(driverScript):
def main(self):
print("Main Test started...")
print("Selenium webdriver Version: %s" % (webdriver.__version__))
driver = driverScript('IE')
driver.getbrowserInstance()
m = mainTest()
m.main()
DriverScript.py
import os
import pytest
import unittest
from pip._internal.configuration import Configuration
from selenium import webdriver
from selenium.webdriver import Ie
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.ie.options import Options
from selenium.webdriver.common.keys import Keys
#import selenium.webdriver
from Utilities import Constants
class driverScript():
def __init__(self,browser=None):
if browser is None:
browser = {}
else:
self.browser = browser
print(self.browser)
self.constants = Constants.Constants()
# Method to invoke browser
def getbrowserInstance(self):
# create a new IE session
print("Browser invoke started")
if (self.browser=='IE'):
capabilities = DesiredCapabilities.INTERNETEXPLORER
print(capabilities["platform"])
print(capabilities["browserName"])
driver_location = self.constants.path_ie_driver
os.environ["webdriver.ie.driver"] = driver_location
ie_options = Options()
ie_options.ignore_protected_mode_settings = True
driver = webdriver.Ie(driver_location, options=ie_options)
print("Browser is Invoked")
driver.get("http://www.amazon.co.uk")
driver.quit()
elif (self.browser=='Chrome'):
capabilities = DesiredCapabilities.CHROME
print(capabilities["platform"])
print(capabilities["browserName"])
driver_location = self.constants.path_chrome_driver
os.environ["webdriver.chrome.driver"] = driver_location
driver = webdriver.Chrome(driver_location)
print("Chrome Browser is Invoked")
driver.get("http://www.amazon.co.uk")
driver.quit()
Constants.py:
class Constants():
#Driver Locations
path_ie_driver = "C:\\Selenium\\Drivers\\IEDriverServer.exe"
path_chrome_driver = "C:\\Selenium\\Drivers\\chromedriver.exe"
confest.py
class Constants():
import pytest
from executionEngine.DriverScript import driverScript
# Send request variable to the fixture
# Browser value will be set from request.config.getoption (from command
# prompt)
@pytest.yield_fixture(scope="class")
def invoke_browser(request,browser):
wdf = driverScript.getbrowserInstance(browser)
driver = wdf.getbrowserInstance()
# Set class attribute and assign the variable
if request.cls is not None:
request.cls.driver = driver
yield driver
driver.quit()
Создание 2 анализаторов для получения значения из командной строки
def pytest_addoption(parser):
parser.addoption("--browser")
Возвращение значения аргумента
@pytest.fixture(scope="session")
def browser(request):
return request.config.getoption("--browser")