Selenium(Python)PageObject页面对象】的更多相关文章

使用PageObject页面对象的好处是, 当页面元素的位置发生改变时, 只需要去修改Xpath或者ID, 而不用去修改测试用例本身: 本次的思路是: 1.常用方法类 2.页面对象类 3.测试用例类 WebDriverMethod.py: class SeleniumMethod(object): # 封装Selenium常用方法 def __init__(self, driver): self.driver = driver # 构造函数 def getTitle(self): # 获取页面标…
一.PageObject 页面对象设计模式  (一个页面建一个类,即对象,页面对象) 每个页面都建对应的class,类中包含了页面的输入框.标题.元素等元素,测试代码中测试这个页面时,只需要调用这个页面类(页面对象)里的页面元素即可,这样实现了将测试对象(页面对象)和测试脚本(用例脚本)分离,如果元素ID等发生变化时,不需要去修改测试代码,只需要在页面类中修改即可,利于维护所有脚本. 页面对象设计模式可分为三层: 1.基础层:driver,findelement,findelements2.对象…
整个工程的目录结构: 常用方法类: class SeleniumMethod(object): # 封装Selenium常用方法 def __init__(self, driver): self.driver = driver def getTitle(self): # 获取页面标题 return self.driver.title def clearAndInput(self, location, value): # 根据xpath定位元素并清除.输入 element = self.drive…
1 class BasePage(): 2 """selenium基类""" 3 4 def __init__(self, driver=None): 5 self.log = Log().logger 6 self.report = cm.allure_json 7 self.broswer = CONF.web_broswer or 'firefox' 8 self.base_url = CONF.web_url 9 self.timeout…
为什么定位一组对象? 定位一组对象的思想    在定位一组对象的过程中我们如何实现?以前的都是通过具体的对象定位,那么定位一组我们就需要通过css来定位   在单个定位对象中使用的是find_element_by_id()  但是定位一组对象需要使用find_elements_by_css_selector   eg: #定位所有的checkbox对象 checkboxs = dr.find_elements_by_css_selector('input[type=checkbox]') for…
webdriver的元素定位很灵活,提供了多种定位方式: Id LinkText PartialLinkText Name TagName Xpath ClassName CssSelector 这些方法可以在org.openqa.selenium.By中找到,下面一一道来 假如有这样的需求:登录安居客网站,搜索陆家嘴附近的二手房源,网页是这样的 这个需求涉及到一个输入框和一个提交按钮,先查看网页源码 在输入框中输入“陆家嘴”然后点击“二手房”按钮,如果能跳转到陆家嘴相关页面就完成了这个需求,我…
示例简介: 要求:登录QQ邮箱,输入账号.密码 出现问题:页面中含有iframe框架,因此直接进行元素的查找与操作,出现找不到元素的现象,首先需进行iframe框架的转换,使用switch_to_frame,详细如下: frame标签有 frameset.frame.iframe三种 1)frameset跟其他普通标签没有区别,不会影响到正常的定位   2)frame与iframe对selenium定位而言是一致的,操作方式为; 1.切换到frame,switch_to_frame(refere…
调用js方法: execute_script(script,*args) Arguments对象: 类数组对象,代表传给一个function的参数列表,当前函数的内置属性,其长度是由实参个数决定而不是由形参个数决定 下面是高亮元素的函数: def highlight(element): driver = element._parent #设置元素的style属性 def apply_style(s): 将参数1:element的属性style设置为参数2:s driver.execute_scr…
1.如果滚动条是针对整个HTML可以用如下方式: js = "var q=document.documentElement.scrollTop=10000" # documentElement表示获取根节点元素 self.driver.execute_script(js) 2.如果滚动条是针对整个body可以用如下方式: js = "var q=document.body.scrollTop=10000" # documentElement表示获取body节点元素…
本章是介绍页面对象设计模式的教程.一个页面对象代表了web应用用户接口的一片区域,你的测试代码将与之交互的. 使用页面对象模式的好处: 可以创建在多个测试样例中都可使用的可重用代码 减少重复性代码 如果用户接口发生改变,只需要字一个地方做出改动即可 6.1 测试样例 下面是一个测试样例,用于测试Pytohn.org网站的搜索功能,搜索一个单词,并确保能得到一些结果. import unittest from selenium import webdriver import page class…