EC.元素的存在位置(*元素)失败(Python)

EC.元素的存在位置(*元素)失败(Python),python,selenium,Python,Selenium,我正在编写我的第一个Python Selenium页面工厂,并且在等待时遇到了一个错误 我的代码如下 基本页类 class Basepage(): browser = None def __init__(self, browser): self.browser = browser self.base_url = config.url def wait_for_element(self, *element): WebDr

我正在编写我的第一个Python Selenium页面工厂,并且在等待时遇到了一个错误

我的代码如下 基本页类

class Basepage():
    browser = None

    def __init__(self, browser):
        self.browser = browser
        self.base_url = config.url

    def wait_for_element(self, *element):

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located(*element)
        )

    def click_element(self, *element):
        self.browser.find_element(*element).click()


    def find_element(self, *element):

        self.browser.find_element(*element)
CreatePage类

class CreatePage(Basepage):

    def isat_createpage(self):
        self.wait_for_element(*CreatePageLocators.add_computer_title)
        text = self.find_element(*CreatePageLocators.add_computer_title).text
        if text == "Add a computer":
            return True
        else:
            return False
循序渐进 @然后('用户将被导航到“创建计算机”页面') def步骤实施(上下文): page=CreatePage(context.browser) 断言page.isat_createpage(),“不在添加计算机页面”

我正在为项目使用的定位器

class CreatePageLocators:
    add_computer_title = (By.XPATH, "//*[@id=\"main\"]/h1")
我发现了错误

Scenario: User can open Create Computer screen              # features/UI_Tests/Create.feature:8
    Given A user has navigated to the BB_Test_Webpage         # steps/Backbase_common_steps.py:6
    And add a new computer is clicked                         # steps/Backbase_common_steps.py:11
    Then the user will be navigated to "Create_Computer" page # steps/web_create_steps.py:5
      Traceback (most recent call last):
        File "c:\users\richard.cariven\python\lib\site-packages\behave\model.py", line 1329, in run
          match.run(runner.context)
        File "c:\users\richard.cariven\python\lib\site-packages\behave\matchers.py", line 98, in run
          self.func(context, *args, **kwargs)
        File "steps\web_create_steps.py", line 8, in step_impl
          assert page.isat_createpage(), "not at ADD Computer page"
        File "C:\Users\richard.cariven\Documents\Backbase_Test_RC\modules\pages\createpage.py", line 15, in isat_createpage
          self.wait_for_element(*CreatePageLocators.add_computer_title)
        File "C:\Users\richard.cariven\Documents\Backbase_Test_RC\modules\pages\basepage.py", line 23, in wait_for_element
          EC.presence_of_element_located(*element)
      TypeError: __init__() takes 2 positional arguments but 3 were given

我想我做错了一件很简单的事。但是,如果您检查位置参数中提到的错误,将非常感谢您的帮助

EC.元素的存在位置(*元素) TypeError:init()接受2个位置参数,但给出了3个

像这样更改下面的内部函数,再添加一个括号

def wait_for_element(self, *element):

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.XPATH, "//*[@id='main']/h1")))