封装空间操作为一个接口使用,而不是直接在页面中查找

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模式的更多相关文章

  1. Python+Selenium使用Page Object实现页面自动化测试

    Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...

  2. 浅析selenium的page object模式

    selenium目前比较流行的设计模式就是page object,那么到底什么是page object呢,简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好 ...

  3. Python+selenium之Page Object设计模式

    Page Object是selenium自动化测试项目开发实践的最佳设计模式之一,他主要提现在对界面交互细节的封装,这样可以使测试案例隔你给加关注于业务而非界面细节,从而提高测试案例的可读性. Pag ...

  4. selenium page object模式

    页面对象模式将测试代码和被测试页面的元素及操作进行分离,以降低页面元素的变化对测试代码的影响.每个被测试的页面都会被定义一个类,类中会定位元素和操作. 如果不使用page object模式,则相同的操 ...

  5. 转 Page Object模式

    Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...

  6. 【C#|.NET】从细节出发(三) 逻辑层事务和page object模式

    一. 业务逻辑层的事务问题 如果你的程序分层清晰并且系统禁用复杂存储过程,那么在DA中的职责比较单一.程序的逻辑通过BLL调用各种不同模块的DA来实现数据操作.如果当需要不同模块在一个事务的时候,问题 ...

  7. Selenium+java - Page Object设计模式

    前言 Page Object(页面对象)模式,是Selenium实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一.在设计测试时,把页面元素定位和元素操作方法按照页面抽象出来,分离成一 ...

  8. UI自动化测试的Page Object模式

    在UI级的自动化测试框架中,当页面样式改变或者页面元素属性改变,那么代码也要随之进行修改,如何做到高效快速的修改代码来适应这些改变呢,这个时候可以引入Page Object模式,也是页面对象设计模式. ...

  9. python+selenium自动化软件测试(第7章):Page Object模式

    什么是Page ObjectModel模式Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class.class的内容主要包括属性和方法,属性不难理解,就是这个页 ...

  10. Python+Selenium+Unittest实现PO模式web自动化框架(1)

    1.什么是PO模式? PO是Page Object的缩写 PO模式是自动化测试项目开发实践的最佳设计模式之一,讲页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,从而提供可维护性. 主要有以下 ...

随机推荐

  1. L1-004 计算摄氏温度

    给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C.计算公式:C=5×(F−32)/9.题目保证输入与输出均在整型范围内. 输入格式: 输入在一行中给出一个华氏温度. 输出格式: 在一行中按照 ...

  2. React 源码剖析系列 - 不可思议的 react diff

      简单点的重复利用已有的dom和其他REACT性能快的原理. key的作用和虚拟节点 目前,前端领域中 React 势头正盛,使用者众多却少有能够深入剖析内部实现机制和原理. 本系列文章希望通过剖析 ...

  3. 掌握所有编程语言不是梦-转自csdn

    还在讨论哪种编程语言最具价值?还在头疼怎么快速掌握新的语言?本文给出了一劳永逸的办法:掌握所有编程语言不是梦. 以下为译文: 我想在这里讨论的不是如何掌握一门编程语言,而是掌握所有的编程语言. 许多初 ...

  4. cocos2d-x 2.1 -- 读取.plist文件

    在cocos2d-x中可以用.plist格式的文件来保存数据,它是XML文件格式的一种,在cocos2d-x解析.plist方面相关的资料比较少,但本身也很简单,要解析.plist文件可以参考coco ...

  5. MyEclipse 10 中安装Android ADT 22插件的方法

    MyEclipse 10 中安装Android ADT 22插件的方法 下载ADT包:http://dl.google.com/android/ADT-22.0.0.zip 将ADT-22.0.0.z ...

  6. UIApplication的详细介绍

    UIApplication 什么是UIApplication? UIApplication对象是应⽤程序的象征.每一个应用都有⾃己的UIApplication对象,这个对象是系统自动帮我们创建的, 它 ...

  7. 如何使用 python3 将RGB 图片转换为 灰度图

    首先,介绍第一种方法, 使用  PIL  库,   PIL库是一种python语言常用的一个图形处理库. 关于   PIL  库的安装本文就不介绍了. from PIL import Image I ...

  8. 王垠:完全用Linux工作 - imsoft.cnblogs

    完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果你只需要处理一般的事务, ...

  9. 使用git错误日志

    错误日志 pull错误 将远程仓库内容pull下来的过程中,碰到了拒绝合并两个不相关的历史,所以无法下载,同样的也无法push 但是我的东西明明是从组织里克隆下来的,只是做了一些修改 后来我我尝试不替 ...

  10. Hibernate4获取sessionFactory

    /** * Location of hibernate.cfg.xml file. * Location should be on the classpath as Hibernate uses * ...