首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python-Behave和Selenium页面对象模型中组合

如何在Python-Behave和Selenium页面对象模型中组合
EN

Stack Overflow用户
提问于 2016-12-20 00:18:42
回答 1查看 1.1K关注 0票数 0

我在github上发现了一个样板,并希望使用Python-Behave和Selenium将POM设计集成到我的BDD框架中。我的Python不好,我得到这个错误: AttributeError:'Context‘对象没有' get’属性

代码语言:javascript
复制
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'

--

environment.py

代码语言:javascript
复制
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()

更新

如果我这样做了:

代码语言:javascript
复制
page = LoginPage(context.browser) 

it错误:

代码语言:javascript
复制
'LoginPage' object has no attribute 'visit_login_page'
EN

回答 1

Stack Overflow用户

发布于 2017-01-12 18:40:38

试试这个:

我的基页(你的页面):

代码语言:javascript
复制
class BasePage(object):
    def __init__(self, browser):
        self.browser = browser

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

代码语言:javascript
复制
class LoginPage(BasePage):

    def __init__(self, context):
        BasePage.__init__(
            self,
            context.browser)
        self.context = context
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41226864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档