【问题标题】:EC.presence_of_element_located(*element) failing (Python)EC.presence_of_element_located(*element) 失败 (Python)
【发布时间】:2019-05-16 13:21:06
【问题描述】:

我正在编写我的第一个 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)

创建页面类

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

行为步骤 @then('用户将被导航到“Create_Computer”页面') def step_impl(上下文): page = CreatePage(context.browser) assert 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

我想我在做一些非常简单的错误。但是非常感谢您的帮助

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    如果您检查错误,则会提到有关位置参数的错误。

    EC.presence_of_element_located(*element) 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")))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 1970-01-01
      • 2021-01-06
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多