gpt4 book ai didi

python - 通过调用页面的 PageObject 导航到该页面

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:32 25 4
gpt4 key购买 nike

我正在编写一些 Selenium 测试,想知道如何导航到我的 ProfilePage,只需在我的测试中调用它的类即可所以我得到了我的 BasePage 类,

class BasePage(object):
def __init__(self,driver):
self.driver = driver
self._validate_page(driver)

@abstractclassmethod
def _validate_page(self,driver):
return

class PageNotDisplayedException(Exception):
"""throw this exception when page was not displayed, or different page is displayed"""
pass

我的 BaseTestCase 类

class BaseTestCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(5)
self.driver.maximize_window()

# navigate to the application home page
self.driver.get('http://www.facebook.com')

def navigateTo(self, to):
self.driver.get(to)

def tearDown(self):
# close the browser window
self.driver.quit()

和我的烟雾测试。在我的冒烟测试中,我想添加类似 navigationTo(ProfilePage) 的内容,而不进行直接调用 webdriver 的测试。

class SmokeTest(BaseTestCase):
def test_login(self):
LoginPage(self.driver).login(self.driver)
navigateTo(self.ProfilePage)

和我的个人资料页面:

class ProfilePage(BasePage):

_page_id = ".//[@class='profile']"
url = "https://www.facebook.com/my.profile"

def __init__(self,driver):
super(ProfilePage, self).__init__(driver)

def _validate_page(self, driver):
try:
driver.find_element_by_xpath(self._page_id)
except:
raise PageNotDisplayedException
("Profile Page could not be displayed")

最佳答案

您的 ProfilePage 页面对象类应具有与该页面关联的 url 属性:

class ProfilePage(BasePage):
url = "https://my.url/profile"

然后,navigateTo 方法应该使用此属性:

def navigateTo(self, page):
self.driver.get(page.url)

然后,您应该在测试中调用 self.navigateTo:

class SmokeTest(BaseTestCase):
def test_login(self):
LoginPage(self.driver).login(self.driver)

profilePage = ProfilePage(self.driver)
self.navigateTo(profilePage)

关于python - 通过调用页面的 PageObject 导航到该页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36452171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com