メソッドを作成したログインページのページオブジェクトクラスがあります。
from Resources.Locators import Locators
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class LoginPage:
def __init__(self, driver):
self.driver = driver
def user_login(self, username, password):
self.driver.find_element(*Locators.username).send_keys(username)
self.driver.find_element(*Locators.password).send_keys(password)
self.driver.find_element(*Locators.login_button).click()
try:
element = WebDriverWait(self.driver, 60).until(
EC.presence_of_element_located((Locators.invalid_error)))
if element:
error_message = element.text
return error_message
except:
self.driver.find_element(*Locators.otp).send_keys("1234")
self.driver.find_element(*Locators.otp_verify_button).click()
以下は、error_message値を使用する必要があるテストケースファイルです。
from selenium import webdriver
import unittest
from Pages.Login import LoginPage
from Resources.Test_Data import TestData
from Resources import Test_Data
class TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get(TestData.base_url)
self.driver.maximize_window()
self.driver.implicitly_wait(5)
def test_01_login_invalid(self):
driver = self.driver
login = LoginPage(driver)
login.user_login("User123", "Password123")
print(login.error_message)
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
I receive the error as follow:
print(login.error_message)
AttributeError: 'LoginPage' object has no attribute 'error_message'
上記のファーストクラスのerror_message値を検証に使用したいと思います。どうすればよいですか?
コードでは、error_messageは、user_login関数によって返される単なるローカル変数です。アクセスしたい場合は、自己属性として作成する必要があります。
例:
from Resources.Locators import Locators
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class LoginPage:
def __init__(self, driver):
self.driver = driver
self.error_message = None
def user_login(self, username, password):
self.driver.find_element(*Locators.username).send_keys(username)
self.driver.find_element(*Locators.password).send_keys(password)
self.driver.find_element(*Locators.login_button).click()
try:
element = WebDriverWait(self.driver, 60).until(
EC.presence_of_element_located((Locators.invalid_error)))
if element:
self.error_message = element.text
return self.error_message
except:
self.driver.find_element(*Locators.otp).send_keys("1234")
self.driver.find_element(*Locators.otp_verify_button).click()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加