栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium + Page Object 练习使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium + Page Object 练习使用

目的

为了熟悉PageObject如何使用,通过访问雪球官方网址来进行模拟练习,做一下过程记录,加深自己的理解。

要求:访问雪球主页,输入关键字搜索,进入搜索页面,选择某个基金加入自选这一过程。使用PageObject可以避免UI发生变化时,不需要大范围去修改自己的测试代码。

将访问过程分为以下模块:

  • basePage:初始化作用
  • MainPage:主页,输入关键字搜索
  • SearchePage:搜索成功页面,做其他功能操作
  • test_xueqiu:执行所要求的操作

    test_xueqiu.py:主要执行文件,打开网址,输入内容搜索,将基金加入自选列表
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
from time import sleep
from page_object.page.MainPage import MainPage

class TestXueqiu(object):
    def setup(self):
        # self.driver = webdriver.Remote(desired_capabilities=DesiredCapabilities.CHROME)
        self.driver = webdriver.Chrome()
        # 等待10s
        # self.driver.implicitly_wait(10)
        self.driver.get('https://xueqiu.com/')
        # 初始化mainpage对象
        self.main = MainPage(self.driver)

    def test_search(self):
        self.main.search('alibaba').follow('09988')

    def teardown(self):
        sleep(10)
        self.driver.quit()

basePage:初始化driver

# from selenium.webdriver.remote.webdriver import WebDriver

class basePage(object):
    def __init__(self, driver):
    	# 初始化driver
        self.driver = driver
        

MainPage:定位输入框,输入关键字搜索

from page_object.page.basePage import basePage
from page_object.page.SearchPage import SearchPage


class MainPage(basePage):
    def search(self, keyword):
        # 输入搜索关键字
        self.driver.find_element_by_name("q").send_keys(keyword)
        self.driver.find_element_by_css_selector(".Header_nav__search__addon_2nk button").click()
        return SearchPage(self.driver)
        

SearchePage:搜索成功后,将对应基金做加入自选功能操作

from time import sleep

from page_object.page.basePage import basePage


class SearchPage(basePage):
    def follow(self, kw):
    	# 添加个等待时间,保证页面加载完成,否则容易发生无法定位到对应的元素,因为还未被加载出来
        sleep(3)
        self.driver.find_element_by_xpath('//*[contains(text(), "%s")]/../../../..//*[@]' % kw).click()
        return self
        

最后执行test_xueqiu.py文件,即可成功运行。
注意:选择执行文件,右键选择pytest方式运行,否则无法弹出浏览器看执行效果。

问题总结:

  • 通过页面之间的传参来实现过程的拆分,在写代码的时候,没有注意searchpage页面没有写返回值,返回 return self,导致没法弹出加入自选的弹窗
  • driver方式,一开始使用Remote的webdriver,因为没有安装配置,执行显示拒绝连接
  • 执行test_xueqiu.py文件,一开始直接右键运行,没有选择pytest方式运行,一直没有看到浏览器弹出执行
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号