簡體   English   中英

Python Selenium-我正在嘗試使用pytest框架,遇到錯誤

[英]Python Selenium - I'm trying to use pytest framework , running into errors

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

from commonPages.LoginPage import LoginPage
from util.InitialSetUp import InitSetup

i = InitSetup()
chrome_options = i.close_popup()
driver = webdriver.Chrome(chrome_options=chrome_options)

log = LoginPage(driver)
log.nav_login_page()

class Test_Home_Page:
    def test_logo_exists(self):
        logo = driver.find_element(By.CLASS_NAME, 'logo')
        assert logo

    def test_user_profile_section_exists(self):
        user_profile_section = driver.find_element(By.CLASS_NAME, 'user-name')
        assert user_profile_section

    def test_user_profile_link_click_opens_dropdown(self):
        user_profile_link = driver.find_element(By.CLASS_NAME, 'user-dropdown-button')
        user_profile_link.click()

        user_profile_menu_item = driver.find_element(By.CLASS_NAME, 'user-profile-menu-item')
        assert user_profile_menu_item

        driver.close()

當運行上述程序時,該程序在功能2啟動時失敗: def test_user_profile_section_exists(self):

它拋出一個錯誤:

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x03AB28D0> response = {'sessionId': '57da643e085012ed03d18a284c063c24', 'status': 7, 'value': {'message': 'no such element: Unable to locate...r info: chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 6.1.7601 SP1 x86_64)'}}

當程序中只有一個功能時,它可以完美執行。

您收到此錯誤的原因是該類元素確實不存在或不可見。 同樣, driver.find_element(By.CLASS_NAME, 'user-name')不是布爾類型,因此您不能直接在其上使用assert

您可以使用以下方法對所有測試進行測試驗證。

def test_user_profile_section_exists(self):
    try:
        driver.find_element(By.CLASS_NAME, 'user-name')
    except NoSuchElementException:
        assert False

    assert True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM