現在、私は、SeleniumとProboscisを使用して自動テストスイートを作成しようとしています。私は、webdriverを抽象化して、工場パターンを通して実装しようとしています。 Page_object
クラスもここで作成されます。このクラスは、オブジェクトを作成する際にwebdriverを引数として取ります。以下はコードです。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()
これは正しい方法ですか?それとももっと良い解決策がありますか? あなたが何か愚かなものを見つけたら、私がPythonとSeleniumを初めて使ったので、私の過失を指摘して無視してください。
この質問はあまり注目されていませんでした。( –