我使用的是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)...
设计思路: 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享。 框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要。 1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性; 2、使用yaml管理页面控件元素数据和测试用例数据。例如元素ID等发生...
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = ‘zuoanvip‘#一般用到操作滚动条的两个场景 #注册时的法律条文的阅读,判断用户是否阅读完成的标准是:滚动条是否拉到最下方 #要操作的页面元素不在视觉范围,无法进行操作,需要拖动滚动条 #用于标识滚动条位置的代码 #<body onload="document.body.scrollTop=0"> #<body onload="document.body.scrollTop=100000">from selenium import webdriver...
因为大部分iframe没有ID和css标签,所有先定义iframe,找到iframe标签iframe=driver.find_element_by_tag_name("iframe") 进入iframe标签driver.switch_to_frame(iframe);driver.find_element_by_xpath("/html/body").send_keys("99999999")退出iframe标签driver.switch_to.default_content()原文:http://www.cnblogs.com/onlyhua/p/7454715.html
本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用。后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的学习和应用,有一次在网上随意搜索,找到了-虫师-写的《Selenium2自动化测试实战基于Python语言》,觉得真心不错,内容也很调理,为了方便自己学习和知识的整理,就把其中虫师编写的自动化项目教程整理一下,有兴趣的可以去参看虫师的...
参考代码:# @Time : 2021/3/4:上午9:12 # @File : keyworddriver.pyfrom selenium import webdriver import timeclass TestKeyWord(object):def__init__(self, browser_type, url):self.driver = self.open_browser(browser_type)self.driver.get(url)# 调用浏览器def open_browser(self, browser_type):if browser_type == ‘chrome‘:driver = webdriver.Chrome()return driverelif browser_type == ‘firefox‘:driv...