首页 > 解决方案 > Python Selenium:遍历每个菜单页面并转到页脚并使用 POM 遍历页脚链接

问题描述

我想遍历网页的每个菜单链接。单击一个菜单链接后,它会转到页脚并使用 POM 遍历页脚链接。现在我可以遍历所有页面,但它主要在测试用例上随机运行。不履行链条。

主页.py

from selenium.webdriver.common.keys import Keys
from pages.BasePage import BasePage
from config.locators import *
from pages.Services import Services


class MainPage(BasePage):
   def __init__(self, driver):
     self.locator = MainPageLocators
     super().__init__(driver)


def click_service_button(self):
    self.find_element(*self.locator.Services).click()
    return Services(self.driver)

def click_insight_button(self):
    self.find_element(*self.locator.Insights).click()
    return Services(self.driver)

mainpage_test.py

from tests.BaseTest import BaseTest
from pages.MainPage import *

import pytest


class TestSignInPage(BaseTest):

    def test_service(self):
        print("main/services")
        page = MainPage(self.driver)
        sign_up_page = page.click_service_button()
        self.assertIn("https://example.com/services/", sign_up_page.get_url())
    
    def test_insights(self):
        print("main/insights")
        page = MainPage(self.driver)
        sign_up_page = page.click_insight_button()
        self.assertIn("https://example.com/insights/", sign_up_page.get_url())

服务.py

from selenium.webdriver.common.keys import Keys
from pages.BasePage import BasePage
from config.locators import *
from pages.About import About
from pages.CaseStudies import CaseStudies


class Services(BasePage):
  def __init__(self, driver):
    self.locator = ServicesLocators
    super().__init__(driver)

  def click_about(self):
    self.find_element(*self.locator.About).click()
    return About(self.driver)

  def click_casestudies(self):
    self.find_element(*self.locator.CaseStudies).click()
    return CaseStudies(self.driver)

services_test.py

from tests.BaseTest import BaseTest
from pages.Services import *


class TestService(BaseTest):

    def test_service(self):
        #print("\n" + str(test_cases(1)))
        page = Services(self.driver)
        sign_up_page = page.click_about_button()
        self.assertIn("https://example.com/about-us/", sign_up_page.get_url())
    
    def test_insights(self):
        #print("\n" + str(test_cases(2)))
        page = Services(self.driver)
        sign_up_page = page.click_carrer_button()
        self.assertIn("https://example.com/case-studies/", sign_up_page.get_url())

这是我的一些代码。所有测试都可以完美运行,但不是链式的。

标签: pythonseleniumpytest

解决方案


推荐阅读