Derzeit versuche ich eine automatisierte Test-Suite mit Selen und Proboscis zu schreiben. Ich versuche den Webdriver zu abstrahieren und durch das Fabrikmuster zu implementieren. Hier wird auch die Klasse Page_object
erstellt, die den Webtreiber beim Erstellen eines Objekts als Argument verwendet. Unten ist der Code.Factory-Muster für Selenium webdriver
import selenium.webdriver as webdriver
from proboscis import TestProgram
from proboscis import test
from proboscis import before_class
from proboscis import after_class
class WebdriverFactory:
@staticmethod
def getWebdriver(browserName):
if(browserName == 'firefox'):
return webdriver.Firefox()
elif(browserName == 'chrome'):
return webdriver.Chrome()
elif(browserName == 'ie'):
return webdriver.Ie()
raise Exception("No such " + browserName + " browser exists")
class Page_Object:
def __init__(self, driver):
self.driver = driver
def go_to_home(self):
self.driver.get("http://google.com")
return self
def go_to_page(self,url):
self.driver.get(url)
return self
def run_search(self, url, query):
self.driver.get(url)
self.driver.find_element_by_id(locators['search_box']).send_keys(query)
self.driver.find_element_by_id(locators['search_button']).click()
def tear_down(self):
self.driver.close()
@test(groups=['selenium'])
class Test_Scripts:
@test(groups=['WebDemo'])
def test_1(self):
driver = WebdriverFactory.getWebdriver("firefox")
pageObj = Page_Object(driver)
pageObj.run_search("http://google.com",'apples')
pageObj.tear_down()
def run_tests(self):
TestProgram().run_and_exit()
Test_Scripts().run_tests()
Ist dies der richtige Weg, dies zu tun? Oder gibt es bessere Lösungen? Wenn Sie etwas Dummes finden, dann weisen Sie bitte darauf hin und ignorieren Sie meine Nachlässigkeit, da ich neu bei Python und Selenium bin.
Wirklich überrascht, dass diese Frage nicht viel Aufmerksamkeit bekommen hat :( –