python selenium-8 Page Object模式
封装空间操作为一个接口使用,而不是直接在页面中查找
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
class Page():
url="https://www.baidu.com"
def __init__(self,driver,base_url=url):
self.base_url = base_url
self.driver=driver
def on_page(self):
print("on_page中的参数self.url"+self.url)
return self.driver.current_url == (self.base_url + self.url)
def _open(self,url):
print("_open传参:"+url)
url = self.base_url + url;
print("整合后的URL:"+url)
self.driver.get(url)
assert self.on_page(),"did not land on %s "%url
def open(self):
self._open(self.url)
def find_element(self,*loc):
return self.driver.find_element(*loc)
class Search(Page):
url='/'
search_key = (By.XPATH,"//input[@id='kw' and @class='s_ipt']")
def type_search(self,word):
self.find_element(*self.search_key).send_keys(word)
def type_submit(self):
self.find_element(By.XPATH,"//input[@id='su']").click()
def test_user_search(driver,word):
search = Search(driver)
search.open()
#通过提供的方法直接操作控件,减少冗余
search.type_search(word)
search.type_submit()
def main():
try:
driver = webdriver.Chrome("/Users/chenshanju/PycharmProjects/SeleniumOfJenkins/driver/chromedriver")
word="hello"
test_user_search(driver,word)
sleep(3)
result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text
assert "百度为您找到相关结果约" in result_text,"结果比对失败"
finally:
driver.quit()
if __name__=="__main__":
main()

python selenium-8 Page Object模式的更多相关文章
- Python+Selenium使用Page Object实现页面自动化测试
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...
- 浅析selenium的page object模式
selenium目前比较流行的设计模式就是page object,那么到底什么是page object呢,简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好 ...
- Python+selenium之Page Object设计模式
Page Object是selenium自动化测试项目开发实践的最佳设计模式之一,他主要提现在对界面交互细节的封装,这样可以使测试案例隔你给加关注于业务而非界面细节,从而提高测试案例的可读性. Pag ...
- selenium page object模式
页面对象模式将测试代码和被测试页面的元素及操作进行分离,以降低页面元素的变化对测试代码的影响.每个被测试的页面都会被定义一个类,类中会定位元素和操作. 如果不使用page object模式,则相同的操 ...
- 转 Page Object模式
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...
- 【C#|.NET】从细节出发(三) 逻辑层事务和page object模式
一. 业务逻辑层的事务问题 如果你的程序分层清晰并且系统禁用复杂存储过程,那么在DA中的职责比较单一.程序的逻辑通过BLL调用各种不同模块的DA来实现数据操作.如果当需要不同模块在一个事务的时候,问题 ...
- Selenium+java - Page Object设计模式
前言 Page Object(页面对象)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一.在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成一 ...
- UI自动化测试的Page Object模式
在UI级的自动化测试框架中,当页面样式改变或者页面元素属性改变,那么代码也要随之进行修改,如何做到高效快速的修改代码来适应这些改变呢,这个时候可以引入Page Object模式,也是页面对象设计模式. ...
- python+selenium自动化软件测试(第7章):Page Object模式
什么是Page ObjectModel模式Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class.class的内容主要包括属性和方法,属性不难理解,就是这个页 ...
- Python+Selenium+Unittest实现PO模式web自动化框架(1)
1.什么是PO模式? PO是Page Object的缩写 PO模式是自动化测试项目开发实践的最佳设计模式之一,讲页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,从而提供可维护性. 主要有以下 ...
随机推荐
- 基于GUI的简单聊天室02
服务器端 与上一篇相比,加进了线程内部类,解决多个客户端连接时,服务器无法全部响应的问题. 利用List集合来装载客户端的对象. 还需要注意全局变量的应用. /** * 相比01,加进了线程内部类,解 ...
- xitong
回复 YAJE3 :http://msdn.anjieart.net/和http://msdn.ez58.net/files/windows%20vista同样是MSDN网站 msdnitellyou ...
- 0121 集合类 ArrayList 的练习
集合接口的常用方法: 1.List接口 public class Jihe { public static void main(String[] args) { ArrayList<String ...
- Beta 冲刺(7/7)
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10129067.html 作业博客:https://edu.cnblogs.com/campus ...
- WebStrom 多项目展示及vuejs插件安装
2. Vuejs 插件安装: ① ②
- C++/C 宏定义(define)中# ## 的含义 宏拼接
C++/C 宏定义(define)中# ## 的含义 define 中的# ## 一般是用来拼接字符串的,但是实际使用过程中,有哪些细微的差别呢,我们通过几个例子来看看. #是字符串化的意思,出现在宏 ...
- RCNN、SPP-net、Fast-RCNN和Faster-RCNN
RCNN RCNN (Regions with CNN features) 的核心思想是把图像划分成N(2000)个独立的区域,分别提取每个区域的CNN特征,然后把这些特征使用SVM等分类器进行结果预 ...
- Mac锁屏快捷键
Mac 锁屏快捷键 直接盖 -- 推荐,因为帅 control + command + Q -- 真正意义上的锁屏.可行 control + shift + Power -- 只是黑屏,再次打开不需要 ...
- TJU Problem 1090 City hall
注:对于每一横行的数据读取,一定小心不要用int型,而应该是char型或string型. 原题: 1090. City hall Time Limit: 1.0 Seconds Memory ...
- 差分约束+spfa【模板】
相比dij,spfa优点是可处理含负边不含负圈的最短路问题,缺点是算法复杂度不太好[貌似可以使用两种优化.LLL和SLF] 差分约束就是将一些不等式转化为图中的带权边,然后求解最短路或最长路的方法 洛 ...