【问题标题】:AttributeError: type object 'WebTablePage' has no attribute 'load' in selenium using pytestAttributeError:类型对象'WebTablePage'在使用pytest的selenium中没有属性'load'
【发布时间】:2022-06-14 02:58:43
【问题描述】:

我正在使用 pytest 在 python 中学习 selenium,我遇到了以下错误。我在整个互联网上搜索了这个错误并尝试了所有可能的建议,但没有任何效果。 我只是想加载网站,它正在打开浏览器,但由于此错误而失败。我不知道我错过了什么,任何线索都会有所帮助。

FAILED Tests/test_webtable.py::test_webtablepage - AttributeError: type object 'WebTablePage' has no attribute 'load'

代码

pages文件夹下的Page Object Class(webtablepage.py)。

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

class WebTablePage:

#URL
 URL = 'https://demoqa.com/webtables'

#Intializers
def __init__(self,browser):
    browser = self.browser

def load(self,browser):
    self.browser.get(self.URL)

Tests 文件夹下的 Pytest fixture(conftest.py)。

import pytest
import selenium.webdriver

@pytest.fixture
def browser():
   #initialize the chrome instance
 driver = selenium.webdriver.Chrome()
   
   #Making the Driver wait for 10 seconds to load elements
 driver.implicitly_wait(10)

   #Return the webdriver instances for the setup
 yield driver

   #Quit the webdriver instances for the cleanup
 driver.quit()

Tests文件夹下的测试函数(test_webtable.py)

from Pages.webtablepage import WebTablePage

def test_webtablepage(browser):
   Webtable_page =  WebTablePage

  # Given the demoa qa Webtables page
   Webtable_page.load()

【问题讨论】:

  • 您使用的是类而不是实例,您可能想要Webtable_page = WebTablePage()
  • 嗨@MrBeanBremen 感谢您的帮助,我也试过这个,仍然抛出同样的错误。

标签: python selenium selenium-webdriver pytest attributeerror


【解决方案1】:

改变

Webtable_page = WebTablePage

Webtable_page = WebTablePage()

【讨论】:

    【解决方案2】:

    WebTablePage 构造函数调用不正确。必须使用 browser 参数调用它。

    改变这个:

    def test_webtablepage(browser):
       Webtable_page =  WebTablePage
    

    到这里:

    def test_webtablepage(browser):
       Webtable_page =  WebTablePage(browser)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      相关资源
      最近更新 更多