Оборачивание кода в метод другого класса в Python - PullRequest
0 голосов
/ 05 апреля 2020

- основной файл

    def test_e2e(self):
    # Home Page
    # Object created for HomePage class in home_page file
    home_page = HomePage(self.driver)

    # CheckOut Page
    # Object created for CheckOutPage class in home_page file
    checkout_page = home_page.shop_items()

    # get product names
    products = checkout_page.get_products()

    for product in products:
        product_name = product.find_element_by_css_selector("div h4").text

- checkoutpagefile

class CheckOutPage:
products = (By.CSS_SELECTOR, "div[class='card h-100']")
product_text = (By.CSS_SELECTOR, "div h4")

def __init__(self, driver):
    self.driver = driver

#  products = self.driver.find_elements_by_css_selector("div[class='card h-100']")
# find_element_by_css_selector("div h4").text

def get_products(self):
    # get the products
    return self.driver.find_elements(*CheckOutPage.products)

def getproduct_text(self):
    # get product text
    pass

Я хотел бы просто удалить эту часть "" .find_element_by_css_selector ("div h4"). Text "" в основной файл и обернуть в класс checkoutpage в методе, как я могу добиться этого?

1 Ответ

0 голосов
/ 05 апреля 2020

Возможно, это не лучшая реализация, но я бы go добавил добавленные ниже методы в класс CheckOutPage.

# Product as an argument
def get_product_text(self, product):
    return product.find_element_by_css_selector("div h4").text

# Products as an argument
def get_products_text(self, products):
    return [product.find_element_by_css_selector("div h4").text for product in products]

или

# If the sole purpose of get_products method is to only get the products text
def get_products_text(self):
    products = self.get_products()
    return [product.find_element_by_css_selector("div h4").text for product in products]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...