python - 调用方法时出现参数错误
问题描述
我有要从中获取电子邮件的功能文件:
Scenario: Login to website
Given I navigate to Login page
When I click on login button
Then I redirected to login page
Then I enter valid "<Email>"
| Email |
| test |
When I click on Submit
我在 LoginPage.py 中有以下代码:
from Base.BasePage import BasePage
from Base.WebDriverActions import Seleniumdriver
class LoginPage():
instance = None
@classmethod
def get_instance(cls):
if cls.instance is None:
cls.instance = LoginPage()
return cls.instance
def __init__(self):
self.driver = BasePage.get_driver()
def enterEmail(self, email):
self.driver.implicitly_wait(20)
self.driver.find_element_by_id("login").send_keys(email)
当我将上述方法称为步骤时:
from Base.BasePage import BasePage
from behave import step, Given, When, Then
from Pages.LoginPage import loginpage
@Given('I navigate to Login page')
def step_impl(Context):
BasePage.load_BaseURL();
@When('I click on login button')
def step_impl(Context):
loginpage.clickLoginLink()
@Then('I redirected to login page')
def step_impl(self):
print('Verifying user logged in..')
@Then('I enter valid "{Email}"')
def step_impl(Email):
loginpage.enterEmail(Email);
我有以下错误:
File "..\steps\Steps_Login.py", line 27, in step_impl loginpage.enterEmail(context, Email); TypeError: enterEmail() takes 1 positional argument but 3 were given
我尝试添加带有参数的 **,但没有运气。
解决方案
您正在调用enterEmail
,因为loginpage.enterEmail(context, Email)
您正在将参数传递给方法,如下所示
- 语境
- 电子邮件
- 自我上课登录页面
如果可行,请尝试删除登录页面或上下文。
推荐阅读
- mysql - MySQL UNION ALL ORDER BY 列不在 SELECT 中
- javascript - 我如何在 express 中收听实时更新?
- java - Class.getConstructor 的替代品[出于性能原因]
- javascript - ReactJS 按钮功能有问题
- django - Django:rest api:当它很大时没有收到完整的json字符串
- ios - UIScreenEdgePanGestureRecognizer 在第一个来自 ShouldBegin 的否后停止工作
- python - Django 表单 - 尝试引用表单字段之一时对象没有属性错误
- sql - 访问搜索查询返回 PK 不值
- ruby - Windows上的Ruby on rails安装puma错误
- batch-file - 创建一个批处理文件以运行具有一些其他参数的特定 exe