如何在Python-Behave和Selenium Page对象模型中将内容放在一起



我在github上找到了一个样板,并希望将POM设计集成到我的BDD框架与Python-Behave和Selenium。我的python不好

class Page(object):
    def __init__(self, browser, base_url = 'https://someUrl.com'):
        self.base_url = base_url
        self.browser = browser
        self.timeout = 30
    def open(self,url):
        self.browser.get(url)
class LoginPage(Page):
    def visit_login_page(self, url):
        self.open(url)        
---
from pages import *
@when('a valid user clicking on the login button after typing in user name and password')
def step_impl(context):
    page = LoginPage(context)
    page.visit_login_page("https://someUrl.com")
#AttributeError: 'Context' object has no attribute 'get'

-

环境.py

from selenium import webdriver
def before_all (context):
#define a Chrome browser instance
    context.browser = webdriver.Chrome()
    context.browser.maximize_window()
    context.browser.implicitly_wait(2)
def after_all(context):
    context.browser.quit()

更新

如果我这样做:

page = LoginPage(context.browser) 

erros:

'LoginPage' object has no attribute 'visit_login_page'

尝试以下:

我的基本页面(您的页面):

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

和我的一个页面之一(登录页面):

class LoginPage(BasePage):
    def __init__(self, context):
        BasePage.__init__(
            self,
            context.browser)
        self.context = context

最新更新