码迷,mamicode.com
首页 > 编程语言 > 详细

Selenium(Python)PageObject页面对象

时间:2018-03-03 23:28:16      阅读:586      评论:0      收藏:0      [点我收藏+]

标签:python   www   tca   页面   blog   homepage   常用方法   退出   ott   

使用PageObject页面对象的好处是,

当页面元素的位置发生改变时,

只需要去修改Xpath或者ID,

而不用去修改测试用例本身;

本次的思路是:

1、常用方法类

2、页面对象

3、测试用例类

 

WebDriverMethod.py:

from selenium import webdriver


class SeleniumMethod(object):
# 封装Selenium常用方法

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

def startUpFirefox(self):
# 打开Firefox浏览器
self.driver = webdriver.Firefox()

def openURL(self, urlAddress):
# 打开地址
self.driver.get(urlAddress)

def MaxWindow(self):
# 把浏览器窗口最大化
return self.driver.maximize_window()

def getTitle(self):
# 获取页面标题
return self.driver.title

def clearAndIinput(self, location, value):
# 根据xpath定位元素并清除、输入
element = self.driver.find_element_by_xpath(location)
element.clear()
element.send_keys(value)

def click(self, location):
# 根据xpath定位元素并点击
return self.driver.find_element_by_xpath(location).click()

def getText(self, location):
# 根据xpath定位元素并获取文本值
return self.driver.find_element_by_xpath(location).text

def closeWindow(self):
# 关闭窗口
return self.driver.close()

def quiteDriver(self):
# 结束driver
return self.driver.quit()

 

BaiduHome.py:

from WebDriverMethod import SeleniumMethod

class BaiduPage(SeleniumMethod):
# 百度页面对象

baiduUrl = "https://www.baidu.com/"
# 百度首页的地址
baiduTitle = "百度一下,你就知道"
# 百度首页的标题
inputBox = ".//*[@id=‘kw‘]"
# 百度输入框
searchBotton = ".//*[@id=‘su‘]"
# 百度搜索按钮

responseTitle = "中国_百度搜索"
# 搜索结果页的标题
oneResult = ".//*[@id=‘1‘]/h3/a"
# 第一行
oneResultText = "中国_百度百科"
# 第一行的文本

def openBaidu(self):
# 打开百度
self.startUpFirefox()
self.MaxWindow()
self.openURL(self.baiduUrl)

def searchChinese(self):
# 搜索中国
self.clearAndIinput(self.inputBox, "中国")
self.click(self.searchBotton)

def exitBaidu(self):
# 退出百度
self.closeWindow()
self.quiteDriver()

BaiduTest.py:
import unittest
from time import sleep

from BaiduHome import BaiduPage


class MyTestCase(unittest.TestCase):

def test_searchChinese(self):
# 测试用例
homePage = BaiduPage(self)
homePage.openBaidu()
assert homePage.getTitle(), homePage.baiduTitle
# 断言百度标题
sleep(2)
homePage.searchChinese()
sleep(2)
assert homePage.getTitle(), homePage.responseTitle
# 断言搜索结果页标题
assert homePage.getText(homePage.oneResult), homePage.oneResultText
# 断言搜索结果第一行的文本
homePage.exitBaidu()

if __name__ == ‘__main__‘:
unittest.main()

Selenium(Python)PageObject页面对象

标签:python   www   tca   页面   blog   homepage   常用方法   退出   ott   

原文地址:https://www.cnblogs.com/yjlch1016/p/8503309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!