Python Метод объекта Selenium Page, вызываемый в основном коде, не работает с ошибкой атрибута, тогда как непосредственно закодированный в основном тесте работает нормально - PullRequest
0 голосов
/ 18 июня 2020

Основной тестовый код

import time
from pageObjects.CheckoutPage import CheckoutPage
from pageObjects.ConfirmPage import ConfirmPage
from pageObjects.HomePage import HomePage
from utilities.BaseClass import BaseClass
class TestOne(BaseClass):

    def test_e2e(self):
        expectedPhone = "Blackberry"
        #time.sleep(6)
        homePage = HomePage(self.driver)
        homePage.shopItems().click()
        checkoutPage = CheckoutPage(self.driver)
        productList = checkoutPage.getCardTitle()
        #productList = self.driver.find_elements_by_xpath("//div[@class='card h-100']")
        for i in productList:
            #product = i.find_element_by_xpath("div/h4[@class='card-title']").text
            product = i.checkoutPage.getCardFooter().text

Объект страницы ниже

from selenium.webdriver.common.by import By
class CheckoutPage:
    def __init__(self, driver):
        self.driver = driver

    cardTitle = (By.XPATH, "//div[@class='card h-100']")
    cardFooter = (By.XPATH, "/div/h4[@class='card-title']")
    button = (By.XPATH, "div/button")
    mainCheckout = (By.XPATH, "//a[@class='nav-link btn btn-primary']")
    PhoneInCart = (By.XPATH, "//a[contains(text(),'Blackberry')]")
    finalcheckout = (By.XPATH,"//button[@class='btn btn-success']")

    def getCardTitle(self):
        return self.driver.find_elements(*CheckoutPage.cardTitle)

    def getCardFooter(self):
        return self.driver.find_element(*CheckoutPage.cardFooter)

ОШИБКА: - Последняя строка основного кода (product = i.checkoutPage.getCardFooter (). text) не работает при вызове с использованием объекта страницы; если он закодирован без объекта страницы непосредственно в основном коде, тогда он работает нормально. Пожалуйста помоги. Я новичок в coding- python -selenium, а также в Stack Overflow

...