栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建

点击下方图片有惊喜,精美礼品等你来拿哦


前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 哈士奇 ,一位致力于 TFS 赋能的博主 ✌
CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 
 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。
 如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦


专栏系列(点击解锁)学习路线指引知识定位
Python全栈白皮书 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 更新中
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


文章目录
    •  python-selenium 环境配置搭建
      •  安装 Selenium
      •  运行第一个 selenium 脚本
      •  安装浏览器驱动 Driver
      •  通过脚本启动Chrome浏览器
    •  python-selenium 小拓展
      •  拓展1 - 偷懒的方式不用指定 driver 路径即可启动 driver
      •  拓展2 - 究竟该如何关闭 driver 启动的浏览器

工欲善其事必先利其器,所以呢,在我们真正通过 Selenium 开始编写自动化测试脚本之前,先要进行基本的环境设置和环境的搭建。

 python-selenium 环境配置搭建  安装 Selenium

安装 selenium 有两种方式可以实现

  • 第一种:通过 pip 命令行方式安装

    • 在终端或者 Pycharm 的 Terminal 终端输入 pip install selenium 即可

    -也可以通过 pip install -U selenium 安装最新版本的 selenium ,该命令最常用的场景是本地已有旧版本的 selenium,尽行覆盖安装

    • ps:讲道理,没有使用 煮 的情况下安装的是真慢....

如下图:



  • 第二种:也可以通过设置中心来进行安装,见下图:

ps:windows 系统的设置中心为 "Setting..." 。


 运行第一个 selenium 脚本

代码示例如下:(这个脚本是会报错的,虽然 selenium 安装成功了,但是我们还缺少启动浏览器的驱动)

# coding:utf-8


from selenium import webdriver


driver = webdriver.Chrome()
driver.get("https://csdn.com")

运行结果如下:



虽然没有正常的打开浏览器,但是至少证明了两个问题。

第一个问题,selenium 的环境是OK的。

第二个问题,selenium 现在还无法正常的打开浏览器。

所以接下来我们就看一下如何解决无法正常启动浏览器这个问题。

 安装浏览器驱动 Driver

上图中演示的 selenium 脚本之所以没有成功启动 浏览器的直接原因就是我们还没有安装相对应的浏览器的 driver ,不同浏览器有不同的 driver。

如下所示:

谷歌浏览器 Chrome 的 ChromeDriver:

下载地址:http://npm.taobao.org/mirrors/chromedriver/

注意:ChromeDriver在下载的时候,需要与浏览器的版本一致。


火狐浏览器 Firefox 的 Geckodriver:

下载地址:http://npm.taobao.org/mirrors/geckodriver/

注意:Geckodriver 在下载的时候,一般下载最新版本的即可。


IE浏览器的 IEdriver:

下载地址:http://selenium-release.storage.googleapis.com/index.html

注意:IEdriver 比较特殊,它下载的版本需要跟 selenium 版本一致才可以正常运行。

注意:下载浏览器的 driver 之前需要查看当前浏览器的版本,然后再下载对应版本的 driver ,如果下载的 driver 与浏览器版本不匹配的话,是无法正常启动浏览器的。

谷歌浏览器查看版本的命令是在网址输入框内输入 chrome://version/ ,即可查看当前浏览器的版本了。如下图:


从图中可以看到当前 Chrome 浏览器的版本是 101.0.4951.54 版本,访问上文中的 ChromeDriver 的下载地址,找到对应的版本号,直接下载放到想要存储 driver 的路径即可。


 通过脚本启动Chrome浏览器

代码示例如下:

# coding:utf-8

import time
from selenium import webdriver

chrome_driver = "/Users/workspace/driver/chromedriver"
driver = webdriver.Chrome(executable_path=chrome_driver)
driver.get("https://blog.csdn.net/")
time.sleep(3)
driver.close()

这里可能会出现 “无法打开 ‘chromedriver’,因为无法验证开发者。” 的提示信息,解决方法如下:

第一步:通过终端进入到 chromedriver 所在的路径

第二步:执行 xattr -d com.apple.quarantine chromedriver 即可;geckodriver 如果遇到该问题也是同样的解决方案。



代码运行结果如下:


从动图中可以看到,Chrome 正在受到自动测试软件的控制。并且当我们运行启动 driver 去打开浏览访问 https://blog.csdn.net/ 的时候,是可以正常打开并关闭的。由此,我们的python-selenium 环境配置搭建才算是完成。


在看看火狐浏览器是否可以正常的受 selenium 的控制…

代码示例如下:

# coding:utf-8

import time
from selenium import webdriver

# chrome_driver = "/Users/workspace/driver/chromedriver"
gecko_drtver = "/Users/workspace/driver/geckodriver"
driver = webdriver.Firefox(executable_path=gecko_drtver)
driver.get("https://www.baidu.com/")
time.sleep(2)
driver.close()

运行结果如下:


这个启动成功的截图是我从网上找的,因为我的 Firefox 一不小心更新到了最新版本,而我下载的最新版的 geckodriver 仍然报错 不兼容的问题 看来火狐浏览器的驱动还没有更新到最新版本的浏览器。(不过我在 Windows 电脑上尝试是成功的,看来 mac 的 geckodriver 确实更新的比 Win 系统的慢...)


 python-selenium 小拓展

在上文中的脚本中,我们是通过指定浏览器的 driver 路径的方式来启动 driver 从而打开浏览器,那么有没有什么办法可以让我们不用每次都指定路径就可以启动 driver 呢?答案当时是有的 

 拓展1 - 偷懒的方式不用指定 driver 路径即可启动 driver
  • 第一个方法就是将 driver 所在的路径,添加至环境变量,这样就可以不通过指定路径文件的方式了。
  • 第二个方法就比较偷懒了,但是我喜欢,那就是将 driver 文件直接放到 python 的路径下即可,这样其实也是利用变量的一种方式。终端输入 where python3 即可知道,然后将 driver 文件直接放到其路径下即可。
 拓展2 - 究竟该如何关闭 driver 启动的浏览器

在 selenium 中,提供了两种关闭 driver 启动的浏览器的方式:

  • close() 方法:该方法可以关闭浏览器,但是它关闭的只是浏览器的窗口,由 driver 启动的浏览器的进程依然还在,会占用一定的资源。
  • quit() 方法:该方法同样可以关闭浏览器,但是它在关闭浏览器的窗口的同时,也会 kill 掉 driver 启动的浏览器的进程。

ps:以上两种方法,close() 方法适合在我们启动浏览器结束了一个用例的场景之后,仍需执行其他的自动化测试用例的时候使用;而 quit() 方法则适合在已经执行完所有用例之后使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号