从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己;更加方便我以后的查阅。 现在要说的是:用Python来读取excel表的数据,返回字典(dict),在脚本中进行调用 我直接贴出代码:import xlrddata_path = "F:\data" # 存放excel表的路径xlsname = "userinfo.xlsx" # excel表的名字sheetname = "Sheet1" # excel表的sheet名字def get_xls_data(xlsname, sheetname): d...
目的:简化代码,提供框架该有的东西每一个函数 -提供了一个功能 - 公共的功能有了basepage,在PageObjects当中直接调用元素操作。以下以login_page 为例,实现从配置文件中读取基础信息,日志模块,公共方法login.py的封装,从Excel中读取元素信息,login_page.py 调用basepage中公共操作方法操作。一、basepage类代码如下:#coding=gbkimport osimport timefrom selenium import webdriverfrom selenium.webdriver.common.by ...
有时候,一件事的开始源于一个意想不到的契机。比如这次的换电脑,比如引起的开通博客。既然需要重新搭建环境,我决定把这个过程记录下来。但是大家都知道,搭建环境本身容易出现版本不兼容、配置不一致等问题,而我也只是一个菜鸟级的测试人员,遇到问题,也是网上各种搜搜搜,然后再试试试,然而,只要最终解决了,总归是好的,不是吗?之所以将整个过程记录下来,一方面是因为正好有这个机会操作记录,另一方面是如果大家在安装...
‘‘‘一 Selenium请求库1.什么是selenium?selenium是一个自动测试工具,它可以帮我通过代码去实现驱动浏览器自动执行相应的操作。所以我们也可以用它来做爬虫。2.为什么要使用selenium?主要使用selenium的目的是为了跳过登录验证。3.安装与使用- 下载驱动器:http://npm.taobao.org/mirrors/chromedriver/2.38/- 下载selenium请求库- 修改下载源为清华源- D:\python36\Lib\site-packages\pip\models\index.py- PyPI = Index(‘ht...
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决:1、Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。解决方案:如果ifram...
我使用的是win10系统,将要搭建的版本分别是:python版本-3.7.0,selenium版本-3.14.1,火狐浏览器版本-61.0.2,geckodriver版本-0.21.0 现在开始搭建环境 第一步、下载Python,安装Python,并添加到环境变量(我下载的是python3.7.0 红框只是举个栗子)官网下载地址:https://www.python.org/downloads/windows/ 安装完后,打开运行,输入cmd,输入python,出现如下图所示表示安装成功如果安装时没有勾选Add Python3.7 to PATH,...
很多时候,网页上的布局都是表格形式的,如出下面这样的这种网页类型在自动化中比较头痛,需要很多判断,下面就举个例子,这里以深圳出入境网页为例,http://yysl.sz3e.com/wsyysq/select_sldw_zbs.jsp比如我们需要点击某个星期六的任意一个可以预约的时段,该怎么写呢。首先我们要分析,这也是写程序的第一步,将手工操作进行逻辑提取,再形成程序1、先判断列表中的日期,找到星期六的列2、再从找到的列中判断可预约的时间点基本思...
前言最近有很多小伙伴在问如何判断一个元素是否存在,这个方法在selenium里面是没有的,需要自己写咯。元素不存在的话,操作元素会报错,或者元素有多个,不唯一的时候也会报错。本篇介绍两种判断元素存在的方法。一、find_elements方法判断1.find_elements方法是查找页面上所有相同属性的方法,这个方法其实非常好用,能熟练掌握技巧的不多,小编这次就发挥它的功效2.由于元素定位的方法很多,所以判断的时候定位方法不统一也比较...
运行脚本时间比较长时可以不打开浏览器测试,这样在测试运行时,电脑还是可以用作其他操作的。只需要在运行脚本上加上下面代码的678行即可 1# coding = utf-8 2 3from selenium import webdriver4import time5 6 option = webdriver.FirefoxOptions()7option.set_headless()8 br = webdriver.Firefox(firefox_options=option)910# br = webdriver.Firefox()1112 br.get("https://mail.qq.com") 原文:https://www.cnblogs.com/sue...
Selenium2+python自动化之读取Excel数据(xlrd)转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································原文:http://www.cnblogs.com/liuyl-2017/p/7794297.html
本文章会讲述以下几个内容:1、什么是PO设计模式(Page Object Model)
2、为什么要使用PO设计模式
3、使用PO设计模式要点
4、PO设计模式实例1、什么是PO设计模式 (Page Object Model)一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减少代码重复、更易读、减少维护成本。
一般PO设计模式有三层
第一层:对Selenium 进行二次封装,定义一个所有页面都继承的 BasePage ,封装 Selenium 基本方法 例如:元素定位,元素等...
上示例:谷歌浏览器from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsoptions = Options()options.headless = Truedriver = webdriver.Chrome(options=options)# 调试时无法用driver.maximize_window()这个函数将窗口最大化,导致截图有问题# 但下面这个函数可以设置窗口大小driver.set_window_size(1500,800)driver.get(‘https://www.baidu.com‘)火狐浏览器from selenium import webdriver...
前言:今天为什么要整理读取配置文件呢?原因是:公司正在做的项目,操作页面时都是根据路由跳转,由于自己经验尚浅,将url地址写在每个用例中,导致每次开发一更改路由,我就要去每个页面中修改url地址,光来来回回找页面就很费时间,所以就想到了用配置文件,将所有url地址放在一个文件中,页面用到哪个时读取哪个。一、基础了解iniini配置文件格式如下:;这里是注释[section0]key0 = value0
key1 = value1[section1]key2 = valu...
python下安装selenium包,然后根据浏览器版本下载对应支持程序,写了个简单的测试。webdriver驱动下载: Chrome点击下载chrome的webdriver: http://chromedriver.storage.googleapis.com/index.html不同的Chrome的版本对应的chromedriver.exe 版本也不一样,下载时不要搞错了。如果是最新的Chrome, 下载最新的chromedriver.exe 就可以了。把chromedriver的路径也加到环境变量里。 FirefoxFirefox驱动下载地址为:https://github.c...
一、元素等待1.1 强制等待import time
time.sleep(5) # 固定休眠5秒1.2 隐式等待创建driver时,为浏览器对象创建一个等待时间,整个 driver 的会话周期内设置一次即可。它并不影响脚本的执行速度,若元素可以定位到则继续执行,若定位不到则以轮询的方式不断判断元素是否被定位到。from selenium import webdriverdriver = webdriver.Chrome()
driver.get("http://localhost:63342/webtest/demo.html")driver.implicitly_wait(10)...