iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python的selenium
  • 711
分享到

基于Python的selenium

pythonseleniumpycharm 2023-09-15 05:09:44 711人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一、安装 1.1安装python,安装Python时需要勾选增加环境变量 如果之前已经安装过Python,需要将Python相关文件以及环境变量删除 1.2安装成功:在命令行界面下输入Python,最

一、安装

1.1安装python,安装Python时需要勾选增加环境变量

如果之前已经安装过Python,需要将Python相关文件以及环境变量删除
1.2安装成功:在命令行界面下输入Python,最终展示>>>即可成功

2.1安装PyCharm,直接自定义安装即可

3、安装selenium

命令行界面,输入pip install selenium
在这里插入图片描述
再次输入pip list 看下安装列表是否有selenium,如果有,就安装成功
在这里插入图片描述

二、各个浏览器驱动下载

1、谷歌浏览器

1找到谷歌浏览器的版本,设置-关于Chrome,进行查看
1.2进入以下网址,根据windows系统进行下载谷歌浏览器驱动器
谷歌浏览器驱动下载
建议:将所有浏览器的驱动放到一个文件夹中,进行管理—最后将该driver文件的路径添加到系统环境变量path中

2、火狐浏览器

1 进入以下网址,下载火狐浏览器驱动当前系统下最新的驱动即可
火狐浏览器驱动地址

3、Edge浏览器驱动

1找到Edge的版本,点击浏览器右上角“···”,选择“帮助和反馈”,点击“关于Microsoft Edge”,查看浏览器版本
3.2,点击下面链接,下载对应的驱动
Edge浏览器驱动
在这里插入图片描述
在这里插入图片描述

三、selenium使用

1、下载好驱动器,添加好路径后,使用基础的代码进行浏览器驱动的调试

rom selenium import WEBdriverfrom selenium.webdriver.common.by import Byimport time#不同浏览器驱动'''driver = webdriver.Firefox()driver = webdriver.Edge()'''driver = webdriver.Chrome()# 打开浏览器窗口driver.get("https://www.baidu.com/")driver.find_element(By.ID, "kw").click()driver.find_element(By.ID, "kw").send_keys("hello Word")# 停留当前页面3秒钟time.sleep(3)driver.quit()

发现控制台并不报错,但是无法调用浏览器
此时,方法一是可以关闭pycharm,重新启动一次,再次运行即可正常

webelement.click()实际上是点击元素正中间
可以使用webelement.clear()清空输入框已输入内容
webelement.text可以获取展示在页面上的文本内容
get_attribute(‘属性名称’),如class ,可以获取class的值
也可以使用get_attribute(‘placeholder’)验证默认提示语是否正确

2、爬虫应用:

page_source方法用于获取页面源码,同re模块进行结合,使用正则表达式进行爬取,re模块的使用放入Python基础语法了解(加入链接

3、等待机制

背景:在测试过程中遇到页面加载较慢时测试人员需要等待加载后才能继续操作;也存在点击按钮后出现弹窗,测试人员继续操作;同时存在程序Bug 导致页面无法加载成功,均需要测试人员进行等待,selenium提供了完善的等待机制应对以上场景
分类:页面级等待机制、元素级等待机制、校本级等待机制

4、点击元素

向元素输入内容:webElement.send_keys(“要输入的内容”)
用于
支持输入内容,上传文件(一般用于输入框元素:input)
上传文件时()内放置本地的文件路径webElement.send_key(“‪E:\auto_test\20230505124740_.xlsx”)

5、清空文本框

清空文本框元素:webElement.clear()整个文本框内容全部清空

再使用send.key后面如果直接再次send.key,则文本内容会叠加

6、提交表单

应用场景:有些情况下,无法在页面直接提交表单,只能通过函数将表单内容进行提交driver.find_element(By.ID, "fORM").submit()
可以不触发提交按钮,而是通过代码直接提交↑↑↑↑↑

7、下拉框选择

同基础的“单击、输入、清空、提交”使用的webelement对象不同,下拉框选择使用Select对象,需要导入
from selenium.webdriver.support.select import Select
下拉框的类别:单选框;多选框
下拉框操作

  • 按照选项文本来选择:selectWebElement.select_by_visible_text("选项的文本") #按文本选择
  • 按照选项值来选择:selectWebElement.select_by_value("选项的值") #按选项值选择
  • 按照选项索引来选择:selectWebElement.select_by_index(选项的索引) #按选项索引选择,索引从0开始
    多选框和单选框的区别:
    多选框支持单选框支持的操作,也支持取消
    selectWebElement.deselect_all() #取消所有选择
    selectWebElement.deselect_by_visible_text("选项的文本") #按文本取消选择
    selectWebElement.deselect_by_value("选项的值") #按选项值取消选择
    selectWebElement.deselect_by_index(选项的索引) #按选项索引取消选择,索引从0开始

四、项目经验

1、报错

1.1、参与不同项目时,发现了一个文件,requirements.txt,需要在命令行中运行该文件,但是身为小白找不到运行的位置,所以先搜索了一下该文件的用途是什么

背景:项目需要下载很多包时,需要不断用 pip命令去下载,找到一个更高效的方法,一次性下载所有Python包
保存数据内容:当前项目中所需要的Python包集合
用途:可以一次性将该文件中的需要用的包全部下载
格式: 包名==版本号

使用
1、手动维护:在项目根目录下,创建文件名为: requirements.txt 的文件,以包名==版本号输入,每一行一个依赖包,如:pytest==6.2.5
应用场景:项目正在维护阶段,会不断增加包/依赖包较少
2、使用命令一次性维护进入项目:终端输入:pip freeze > requirements.txt
应用场景:项目已经完成/依赖包较多
3、一次性下载该文件的依赖包:终端输入: pip install -r ./requirements.txt ,可以自动下载;包已存在也没关系,会自动覆盖
再次打开Python 解释器,就可以看到文件中的依赖包了

1.2 、接上个问题,找不到命令行运行位置

在网上搜索了下,找到Python项目所在文件,在文件路径中输入cmd,然后回车,命令行界面就会展示出来,可以使用上面的命令试试
2.1也可以直接打开pycharm,打开requirements.txt文件,文件上方有提示语,可以直接按照提示语进行安装

1.3、安装pandas的包时提示error: Microsoft Visual c++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: Https://visualstudio.microsoft.com/visual-cpp-build-tools/

原因:这个包中有C++的内容,这部分内容需要先编译才能安装,没有安装C++的平台
解决办法1: 安装Microsoft C++ Build Tools软件
解决办法2:
2.1 首先在终端安装wheel:pip install wheel,终端提示安装成功后,
2.2 在whl文件下载网站中找到对应需要下载的包(如本次安装pandas,就在浏览器中搜索pandas,找到对应的包,pandas-1.4.3-cp311-cp311-win_amd64.whl,cp311—python3.11版本;amd64----win 系统64位)
2.3 找到后,放入项目文件下,再次使用pip install 文件名,如:pip install pandas-1.4.3-cp311-cp311-win_amd64.whl,安装,然后提示安装成功
2.4 再次运行pip install -r requirements.txt ,提示

ERROR: pandas-1.4.3-cp310-cp310-win_amd64.whl is not a supported wheel on this platform.

发现是下载的包和python版本不一致
使用pip debug --verbose查看Python对应版本,重新下载后,重新执行命令,可以安装成功,
再次执行pip install -r requirements.txt ,依然报相同的错—最终结果失败

1.4运行时提示:Message: element click intercepted: Element ... is not clickable at point (277, 189). Other element would receive the click:

出现原因:项目中某个页面加载慢,导致某个元素无法点击,并且提示如上内容
出现现象:
场景:等待页面1跳转到页面2,点击页面2的新增按钮,但页面2加载过慢,导致实际上看到的是,页面2未完全加载出来,直接关掉自动化调用的浏览器页面
排查原因:在页面2未完全加载出来时,程序实际上已经运行到,找到新增按钮,点击新增按钮,此时点击新增按钮时报错
网上找到解释:元素定位相互覆盖,元素已经找到,但是无法点击
尝试方法一:使用显性等待方法:

element_to_be_clickable--元素是否可点击vibility _of_ element_ located--元素是否可见presence_of_element_located--元素是否存在

之前使用的方法是vibility _of_ element_ located--,更改为element_to_be_clickable依然报相同的错误

尝试方法二:
猜测原因是:点击事件可能被父级元素拦截,需要将Xpath路径改成上面一层,改后,依然不生效

尝试方法三:强制等待,使用time.sleep(2),试下,管用
缺点:降低程序运行效率,且不能永久解决问题
优点:符合实际测试场景,在实际测试中,需要等待页面加载完成后,再进行后续操作

尝试方法四:使用javascript的代码来替代
缺点:不符合测试的实际应用场景,在load未完全加载完成后直接进行后续操作
优点:绕过检查机制,可以百分百解决问题

element = self.browser.find_element(By.XPATH, "//div")self.browser.execute_script("qrguments[0].click()",element)

尝试方法五:使用Exception_Condition中的方法进行处理

1.5 运行登录的代码打开浏览器提示data:

浏览器启动时会提示data

  • 猜测原因1:驱动器和谷歌浏览器版本不匹配导致
    解决办法一:验证驱动器和浏览器的版本是否一致,然后再次启动验证----验证一致,启动后依然有data提示
    办法二:把驱动器放到Python-Script中,重新启动验证----放入后重新启动,依然有data提示
  • 猜测原因2:没有设置用户数据目录,需要找一个文件夹存放谷歌数据
    补充代码:
from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_argument(r"user-data-dir=此处填任意文件夹路径")browser = webdriver.Chrome(chrome_options=options)browser.get('http://www.baidu.com')

再次重新启动----依然有data提示

  • 猜测原因三:可能是因为定义了多个驱动,但是没有关闭?

1.6 点完第一个页面的按钮,进入第二个页面点击相同位置的按钮,程序运行时点击第二个,但页面上看来点击的是一个页面的按钮

场景:步骤:页面1新增(填写数据后提交)—>切换至页面2,点击相同位置新增,在弹窗内(填写数据)
运行效果:页面1新增(填写数据后提交)—>切换至页面2,点击相同位置新增,实际出现的弹窗为页面1的弹窗
猜测原因:
1、初步排查页面2按钮Xpath路径错误(实际上路径正确)
2、猜测层级不对,向上找到更高几层的(✘)
3、猜测缺少当前页面是否存在这个元素的判断,所以增加判断后再次运行(✘)
4、猜测缺少该元素是否可点击的判断,所以增加判断后再次运行(✘)
解决办法:
万能time.sleep(2),强制等待后解决了

2、与jenkins集成

2.1 目的:在合适的机会触发,持续集成的自动化构建、部署、测试,可以最大限度发挥自动化测试的优势

优势:减少人为的遗忘,降低流程中自动化的缺失;提高触发的效率和准确性(在开发提交代码时、或者定期执行,保证及时检验、准时检验)

2.2、持续集成概念介绍

2.2.1 持续集成的概念:在开发周期的每一天,开发同事都会多次集成当天工作的一种模式
2.2.2 自动化集成的概念:自动化构建(包括编译、部署、自动化测试)
2.2.3 持续交付的概念:将集成后的代码自动部署到预生产环境,进行相关测试和验证后,验证通过后手动部署到生产环境的方法
2.2.4 持续部署的概念:即将手动部署生产环境的过程自动化

2.3 jenkins 集成selenium类型

2.3.1 基于代码更新
时间点:开发同事集成代码后,触发自动化执行
前提条件:测试网站代码以及自动化测试代码均放在一个平台上(如GitHub),也放在同一个源地址下
流程:开发同事集成代码到gitHub上,Jenkins会监控到该项目的代码变动,会自动构建、部署,自动化测试此次集成是否影响核心功能
由于当前项目已经在Jenkins上存在,只需要将自动化测试代码部署到Jenkins上,可以在Jenkins上手动执行
步骤:
1、将源码地址放入Jenkins上:
点击item 小三角,选择配置,切换至流水线,在流水线Repository URL中输入自动化测试源码地址,其他内容不做修改
在这里插入图片描述
2、设置触发点
切换至“构建触发器”,选择Poll SCM(意义为定时检查源码更新),在日程表中输入H/1* * * *(Jenkins cron语法,代表每隔1小时检查一次),然后点击保存即可

在这里插入图片描述
此时修改源码后,Jenkins就会自动执行测试代码进行验证

2.3.2 基于时间定期执行

与基于代码更新不同的是,在设置触发点时,修改为Build periodically(表示基于时间设定,定制执行),填入H/30* * * *”,表示每隔30分钟执行一次,点击保存即可
在这里插入图片描述
设置成功后,则会每30分钟执行一次自动化测试

4 反馈测试报告
2.4.1 直接使用控制台进行报告
2.4.2 使用测试报告
2.4.3使用邮件进行报告

来源地址:https://blog.csdn.net/weixin_43490695/article/details/129306876

--结束END--

本文标题: 基于Python的selenium

本文链接: https://www.lsjlt.com/news/408175.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python的selenium
    一、安装 1.1安装Python,安装Python时需要勾选增加环境变量 如果之前已经安装过Python,需要将Python相关文件以及环境变量删除 1.2安装成功:在命令行界面下输入Python,最...
    99+
    2023-09-15
    python selenium pycharm
  • 基于python 3 的selenium
    本文主要是运用selenium模块模拟登陆新浪微博 python webdriver环境搭建教程:http://blog.csdn.net/nanjunxiao/article/details/7957326 # -*- c...
    99+
    2023-01-31
    python selenium
  • python基于selenium+cv2
    首先贴上我的安装包 一、selenium安装  I.打开pycharm,点击Settings,找到Project Interpreter,点击右边的下拉菜单下的show All...选项  II.点击show All...选项后,点击框...
    99+
    2023-01-30
    python selenium
  • 基于Python的Selenium详细教程
    一、PyCharm安装配置Selenium 本文使用环境:windows11、Python 3.10.5、PyCharm 2022.1.3、Selenium 4.3.0 需要你懂的技术:Python、...
    99+
    2023-09-02
    python firefox 开发语言 html5 javascript
  • 基于Selenium+Python的web自动化测试框架
    一、什么是Selenium?Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Se...
    99+
    2023-06-04
  • 基于Python和Selenium的大麦网自动抢票脚本
    自动化抢票的脚本,需通过Selenium库来实现自动化操作。(学习参考) # 导入必要的库from selenium import webdriverfrom selenium.webdriver.c...
    99+
    2023-08-31
    python selenium chrome
  • 基于Selenium+Python的web自动化测试框架详解
    目录 一、什么是Selenium? 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的we...
    99+
    2023-09-28
    python selenium 前端 pytest 职场和发展 自动化 运维
  • Python 基于Selenium实现动态网页信息的爬取
    目录一、Selenium介绍与配置1.Selenium简介2. Selenium+Python环境配置二、网页自动化测试1.启动浏览器并打开百度搜索2.定位元素三、爬取动态网页的名人...
    99+
    2024-04-02
  • Selenium自动化测试(基于Java)
    目录 一. 了解Selenium ✅1.1 概念 ✅1.2 作用 ✅1.3 特点 ✅1.4 工作原理  二. Selenium + Java 环境搭建 ✅2.1 下载 Chrome 浏览器 ✅2.2 查看浏览器的版本 ✅2.3 下载浏览器驱...
    99+
    2023-10-01
    selenium 测试工具
  • 【自动化测试】——Selenium (基于java)
    前言 小亭子正在努力的学习编程,接下来将开启软件测试的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 目录 一、认识Selenium...
    99+
    2023-09-01
    selenium 测试工具
  • Python中Selenium的基本使用
    目录 一、Selenium是什么? 二、使用步骤   1.引入库   2.下载浏览器驱动   3.配置浏览器驱动    4.创建WebDriver对象   4.1.options    4.2.service   4.3...
    99+
    2023-09-29
    selenium python
  • Python-selenium基础操作
    一. selinum优势页面级测试,模拟用户真实操作强大library,支持页面元素各类操作多浏览器支持(chrome,firefox,ie)多语言支持(python,java,C#,php,ruby)二. 需要安装软件firefox  f...
    99+
    2023-01-31
    操作 基础 Python
  • Python基于Selenium怎么实现动态网页信息的爬取
    这篇文章主要介绍“Python基于Selenium怎么实现动态网页信息的爬取”,在日常操作中,相信很多人在Python基于Selenium怎么实现动态网页信息的爬取问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-22
  • Python selenium webdriver 基本使用
    系列文章目录 selenium webdriver 的常用示例 文章目录 系列文章目录selenium webdriver 的常用示例 前言一、Pip安装&创建Bowser对象1.Pip ...
    99+
    2023-09-03
    python selenium chrome 网络爬虫 https
  • python网络爬虫基于selenium爬取斗鱼直播信息
    目录一、本文使用的第三方包和工具二、selenium的介绍和浏览器驱动的安装1.selenium的介绍2.浏览器驱动的安装三、代码思路分析1.解析数据的函数2.保存数据的函数3.主函...
    99+
    2024-04-02
  • Python selenium基础用法详解
    ​  活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 学习日记 目录 学习日记 一、Selenium库介绍 1、Selenium简介 2、Selenium的安装 3...
    99+
    2023-09-08
    python selenium
  • Python爬虫基础初探selenium
    目录Seleniumselenium的用途selenium是优缺点1. Selenium工作原理1.1 Selenium配置1.2 浏览器驱动1.3 使用Selenium2 快速入门...
    99+
    2024-04-02
  • 基于selenium爬取拉勾网职位信息
    1.selenium   Selenium 本是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。而这一特性为爬虫开发提供了一个选择及方向,由于其本身依赖于浏览器,所以使用Python的s...
    99+
    2023-01-31
    职位 信息 selenium
  • 基于 Python 和 Pandas 的
    Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性能,高效率和高水平的数据分析库. 从本质上讲,它非常像操作电子表格的无头版本,如Excel....
    99+
    2023-01-30
    Python Pandas
  • 基于Docker+Selenium Grid的测试技术应用示例代码
    Selenium Grid介绍 尽管在未来将会推出的Selenium 4.0版本中对Selenium Grid的一些新特性进行了说明,但是目前来看官方并没有太多详细文档供大家参考,所...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作