Я использую селен с python для автоматизации тестирования веб-приложений. В нашем веб-приложении есть список устройств, и мне нужно запустить набор тестовых случаев на каждом устройстве. В настоящее время я использую инфраструктуру модульного тестирования, которая отлично работает для одного устройства, но это не удовлетворяет моей цели. Пожалуйста, предложите способ, с помощью которого мой скрипт может работать как положено. Ниже приведен фрагмент кода для справки
enter code here
# Standard library imports
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
import time
import unittest
import HtmlTestRunner
import pyautogui
from selenium.webdriver.common.action_chains import ActionChains
# Local application imports
from Scripts.PageObjects import Login, MeterOverViewPage, CustomerOverViewPage
from Scripts import generic
from Resources import Constants, Locators
class MeterOVRegTestCases(unittest.TestCase):
@classmethod
def setUpClass(self):
print("\n*********--In setUp--*********")
self.driver = webdriver.Chrome(executable_path="D:\Python\Driver\chromedriver.exe")
conInst = Constants.signInConst
self.driver.get(conInst.baseURL)
self.driver.maximize_window()
logInPage = Login.LoginPage(self.driver)
logInPage.login(conInst.loginName, conInst.passWord)
pageTitle = self.driver.title
print("\n->Page Title: " + pageTitle)
loctrInst = Locators.genLocators
print("-Selecting Customer")
covInst = CustomerOverViewPage.CustomerOV(self.driver)
conInst = Constants.ovConst
covInst.select_customer(conInst.customer_2)
genInst = generic.genaral(self.driver)
timeTaken = genInst.getTime_takenFor_loading(loctrInst.loadingLabel)
print("Time taken to load data " + str(timeTaken))
def test_case_01(self):
#----------------------- ------------ ------------------
try:
conInst = Constants.ovConst
print("\n-TestCase_01 : Select a particular meter [Serial number : " +
str(conInst.devTagForSearchBox)+"]")
covInst = CustomerOverViewPage.CustomerOV(self.driver)
genInst = generic.genaral(self.driver)
searchBox = covInst.verify_searchBox()
loctrInst = Locators.genLocators
if(searchBox.is_displayed()):
print("Searchbox is available on the overview page")
searchBox.send_keys(conInst.devTagForSearchBox)
timeTaken = genInst.getTime_takenFor_loading(loctrInst.loadingLabel)
print("Time taken to load data " + str(timeTaken))
loctrInst = Locators.covLocators
dispMsg = self.driver.find_element(By.ID,loctrInst.overviewTbleInfo).text
if (dispMsg == conInst.overviewTableInfo):
print("\nPlease enter valid device tag, No matching records found")
genInst.screen_capture("test_case_01") #Append the tag name with time stamp
genInst.clear_inputBox(loctrInst.searchBox)
time.sleep(2)
else :
print("\nRead first device in the table after search")
covInst = CustomerOverViewPage.CustomerOV(self.driver)
covInst.select_device(1,4)
time.sleep(5)
loctrInst = Locators.genLocators
genInst = generic.genaral(self.driver)
timeTaken = genInst.getTime_takenFor_loading(loctrInst.loadingLabel)
print("Time taken to load data " + str(timeTaken))
except Exception as err:
print("\nTC_01 Failed with this error: ",str(err))
genInst = generic.genaral(self.driver)
genInst.screen_capture("test_case_01")
time.sleep(1)
alertObj = self.driver.switch_to_alert()
alertObj.accept()
time.sleep(5)
def test_case_02(self):
try:
print("\n-TestCase_02 : Select parameters for graph plotting")
movInst = MeterOverViewPage.MeterOV(self.driver)
movInst.varify_paramRemoval()
movInst.varify_paramSelection()
time.sleep(60)
except Exception as err:
print("\nTC_02 Failed with this error: ",str(err))
genInst = generic.genaral(self.driver)
genInst.screen_capture("test_case_02")
time.sleep(1)
alertObj = self.driver.switch_to_alert()
alertObj.accept()
time.sleep(5)
def test_case_03(self):
try:
print("\n-TestCase_03 : Verify Time filter")
movInst = MeterOverViewPage.MeterOV(self.driver)
genInst = generic.genaral(self.driver)
loctrInst = Locators.genLocators
tempList = self.driver.find_element(By.CLASS_NAME,"ranges")
numberOfFileters = tempList.find_elements(By.TAG_NAME,"li")
numberOfFileters = len(numberOfFileters)
for index in range (1,numberOfFileters):
print(index)
movInst.select_timeFilterTest(index)
timeTaken = genInst.getTime_takenFor_loading(loctrInst.loadingLabel)
print("Time taken to load data " + str(timeTaken))
except Exception as err:
print("\nTC_03 Failed with this error: ",str(err))
genInst = generic.genaral(self.driver)
genInst.screen_capture("test_case_03")
time.sleep(1)
alertObj = self.driver.switch_to_alert()
alertObj.accept()
time.sleep(5)