关于自动化测试其实很多时候都是为了节省时间做一些大批量的复用性工作,在正式学习自动化脚本编写之前,这里引用陈建忠老师的博客内容,希望大家能了解一下关于什么是自动化的知识,在日后做自动化测试的过程中会根据不同的项目、不同的需求、不同的测试内容制定合理的自动化测试方案。

https://www.cnblogs.com/111testing/p/6048190.html

前面学习了很多对于写代码进行铺垫的内容,从这一章节开始我们就要学习如何去使用selenium+python对网页进行点击、输入、下拉、刷新等基本操作。

1、如何使用selenium+python打开火狐浏览器并进入百度

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

2.设置休眠时间(运行时会等待3S,一般设置时间是为了等待打开页面加载完成)

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

time.sleep(3)#设置休眠时间为3S

3.隐性等待(该方法为设置一个远超页面加载时间的范围,如页面加载需要20s,设置时将加载时间设置为30S,该方法会判断页面加载完成直接进行下一步操作)

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

implicitly_wait(30)#设置隐性等待时间

implicitly_wait()比time.sleep更加智能,time.sleep只能选择一个固定的等待时间,implicitly_wait()可以在一个时间范围内进行等待。

implicitly_wait()的缺点为页面加载时间可能过长,随着ajax技术的广泛应用,现在网页中各元素内容可以实现逐步加载,可能我们所需要的元素已经加载出来,但是对于隐性等待的方法来说,它需要等待整个网页加载完毕才能进行下一步,所以需要的时间可能过长,延长执行过程时间。

3、显性等待(WebDriverWait)

显性等待会根据预加条件对某一个元素进行判断,经过多少秒对该元素进行查找,如果该元素已经加载出来则直接进行下一步,如果该元素没有加载出来则继续等待元素加载,也可用该方法设定某个元素在规定时间内不可见,具体根据自己的测试需求定制测试方案。

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttimefrom selenium.webdriver.support.wait importWebDriverWaitfrom selenium.webdriver.support importexpected_conditions as ECfrom selenium.webdriver.common.by importBy

driver=webdriver.Firefox()

driver.get('https://huilansame.github.io')

WebDriverWait(driver,20,0.5).until(

EC.presence_of_element_located((By.LINK_TEXT,'CSDN')))print (driver.find_element_by_link_text('CSDN').get_attribute('href'))

driver.close()

4、页面刷新(需要在特定内容的界面没有加载出来时或其他场景中进行页面刷新操作)

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

driver.refresh()#对当前页面进行刷新

5.浏览器窗口放大及缩小(我们在使用浏览器的过程中可能需要点击有上角的□对浏览器进行放大或者缩小操作,当然了,selenium也可以给我们提供相应的方法对浏览器进行各种比较人性化的操作。)

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

time.sleep(3)#自定义设置浏览器窗口大小

driver.set_window_size(600*960)

time.sleep(2)#设置浏览器窗口最大化

driver.maximize_window()#设置浏览器窗口最小化

driver.minimize_window()

6、前进或后退至某一个页面

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

time.sleep(3)#在输入框中搜索“知乎”

driver.find_element_by_id("kw").sendkey("知乎")#点击“百度一下”按钮进行搜索

driver.find_element_by_id("su").click#等待3S

time.sleep(3)#点击下一页按钮

driver.find_element_by_class_name("n")#返回上一页

driver.back()

time.sleep(3)#切换到下一页

driver.forward()

7、关闭窗口(根据测试场景的不同需要进行不同的操作,driver.quit()可以杀死当前浏览器进程,driver.close()可以关闭当前浏览器窗口)

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

time.sleep(3)#关闭浏览器进程

driver.quit()#关闭当前窗口#driver.close()

8、截图(截图方法为get_screenshot_as_file可以在浏览器中使用截图操作,在括号中需要配置截图地址及文件名称和文件格式。)

#coding:utf-8

'''utf-8为中文编码格式

调用selenium模块中webdriver浏览器驱动

调用时间模块'''

from selenium importwebdriverimporttime

driver=webdriver.Firefox()#driver = webdriver.Ie()#ie浏览器驱动调用方法#driver = webdriver.Chrome()#谷歌浏览器驱动调用方法

driver.get("https://www.baidu.com")

time.sleep(3)

driver.get_screenshot_as_file("C\\test\\123.jpg")

python对浏览器的常用操作_python+selenium(4)--浏览器操作的基本方法相关推荐

  1. python学法用法 自动刷分器_Python selenium模拟手动操作实现无人值守刷积分功能...

    def DaTi(): driver.get(url = 'https://pc.xuexi.cn/points/exam-practice.html') elem_juje = WebDriverW ...

  2. python写界面输入测试脚本_python+Selenium自动化测试——输入,点击操作

    这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要 ...

  3. python如何控制浏览器_Python+selenium 控制浏览器

    控制浏览器 driver.forward() # 浏览器前进 driver.back() # 浏览器后退 driver.refresh() # 刷新页面 driver.set_window_size( ...

  4. python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法

    1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not ...

  5. python selenium鼠标点击_python selenium鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件--ActionChains sele ...

  6. python里的shell是什么_python中的shell操作

    http://blog.csdn.net/meng_tianshi/article/details/6682317 首先介绍一个函数: os.system(command) 这个函数可以调用shell ...

  7. python json文件操作_python对json的操作总结

    引言 你一定听说过 JSON 吧.JSON 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,最重要的是在多个场合都被大量被使用. 既然 JSON 这么好,那就让我们继续探险,去掌握 pyt ...

  8. python中网页关闭再打开_Python Selenium 之关闭窗口close与quit的方法

    selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别. 1.看源码或API 这是close()的说明: Closes the current window. 关 ...

  9. python中command是什么意思_python中command执行shell命令脚本方法

    在Python中有一个模块commands也很容易做到以上的效果. 看一下三个函数: 1). commands.getstatusoutput(cmd) 用os.popen()执行命令cmd, 然后返 ...

  10. python读取指定行到最后一行_python读取文件最后一行两种方法

    原博文 2018-09-27 13:58 − 1)常规方法:从前往后依次读取 步骤:open打开文件. ... 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的 ...

最新文章

  1. 阿里某员工:发完年终奖后就离职,工作让我心力交瘁
  2. 并查集和prime和kruskal
  3. python3.4.4怎么打代码_Python3.4里面__name和__main__的作用
  4. 手机休眠监测wifi
  5. 2879: [Noi2012]美食节
  6. php7判断邮箱格式是否正确,利用php实现验证邮箱格式是否正确
  7. 测试电梯的测试用例_测试开发工作者日记:2020.12.24
  8. 12、图解横向扩容过程,如何超出扩容极限,以及如何提升容错性
  9. 剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)
  10. linux yum 命令 详解
  11. CentOS 6系统FreeSwitch和RTMP服务 安装及演示(二)
  12. 拜托,别再让我优化大事务了,我的头都要裂开了
  13. java启动脚本_java启动脚本
  14. 类似Jira的十大项目管理软件
  15. 采用SyncToy2.1软件实现两台电脑间文件的自动实时同步(亲测有效)
  16. html通过拼音首字母定位,javascript实现通过拼音首字母快速选择下拉列表
  17. Android8 for 9300,三星G9300官方固件rom刷机包 G9300ZCS3CRI1 安卓8.0
  18. 最新电销语音机器人完整版源码+含安装教程
  19. 基于Springboot中小餐厅点餐管理系统设计
  20. 【学习笔记】Python之 pdf 下载、合并

热门文章

  1. 用xstart远程连接linux图形用户界面
  2. vue--鼠标经过卡片具有动态阴影效果
  3. Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd)
  4. 水仙花数(daffodil)
  5. NGUI 角色头像状态栏制作
  6. Linux02目录结构
  7. VB.NET:生成底色透明的PNG图片
  8. 背包游戏 c语言,关于几个背包问题(C语言)(示例代码)
  9. 向*葵远程代码执行(自己复现过程)
  10. 三星a52设置杜比全景声教程