首页 > 编程语言 >Selenium自动化测试之python

Selenium自动化测试之python

时间:2024-02-01 21:05:08浏览次数:44  
标签:webdriver 浏览器 python Selenium selenium Chrome 自动化

1、简介

Selenium是一个自动化测试工具,它支持多种浏览器和操作系统,可以模拟真实用户的行为,如点击、输入文本、滚动页面等。Selenium可以在多种编程语言中使用,如Java、Python、C#等。它可以帮助测试人员快速、准确地测试应用程序的功能和性能。Selenium还提供了丰富的API和库,使得测试人员可以轻松地编写测试脚本,并与其他测试工具集成。

Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。 而且还能从web界面获取信息。 比如获取 火车、汽车票务信息,招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。

2、Selenium 的自动化原理

70fbc8be7b1a4efdab66040868066270.png

3、selenium 自动化流程如下:

  • 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)
  • 客户端库会发送Selenium 命令 给浏览器的驱动程序
  • 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令
  • 浏览器执行命令
  • 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序
  • 自动化程序对返回结果进行处理

4、安装客户端库

Python语言用 pip 命令安装Selenium客户端库。selenium安装非常简单。 打开 命令行程序,运行如下命令: # pip install selenium

如果安装不了,可能是网络问题,可以指定使用国内的豆瓣源 pip install selenium -i https://pypi.douban.com/simple/

5、安装Chrome浏览器

  • 浏览器驱动是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。
  • 目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。推荐大家使用 Chrome浏览器。 Chrome 历史版本下载: https://vikyd.github.io/download-chromium-history-version

6、安装Chrome浏览器驱动

Chrome 114以前的 版本访问下面的链接: https://chromedriver.storage.googleapis.com/index.html

7、安装Edge浏览器驱动

微软的Edge浏览器对Selenium自动化的支持也不错。 现在Windows操作系统自带Edge浏览器,不需要你额外安装。 所以,如果你选择微软 Edge浏览器做自动化,只需要按照 Edge浏览器驱动,如下: 点击这里打开Edge浏览器驱动下载页面,选择在 Stable Channel 下载(下图箭头处) tut_20231101085005_75.png

根据电脑运行平台,选择相应的链接。例如,如果您的电脑使用的是x86架构的CPU(目前AMD和Intel的CPU都是x86架构),并且运行的是Windows系统,那么通常建议选择x64链接。不过,请注意,x86链接对应的是32位的浏览器驱动,但因为Windows操作系统目前都兼容运行32位程序,所以也可以使用x86链接。

下面的代码, 可以自动化的 打开Chrome浏览器,并且自动化打开百度网站,可以大家可以运行一下看看。

from selenium import webdriver from selenium.webdriver.chrome.service import Service

# 创建 WebDriver 对象,指明使用chrome浏览器驱动 wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址 wd.get('https://www.baidu.com')

# 程序运行完会自动关闭浏览器,就是很多人说的闪退 # 这里加入等待用户输入,防止闪退 input('等待回车键结束程序')

  • 关闭 chromedriver 日志 缺省情况下 chromedriver被启动后,会在屏幕上输出不少日志信息,如下

DevTools listening on ws://127.0.0.1:19727/devtools/browser/c19306ca-e512-4f5f-b9c7-f13aec506ab7 [21564:14044:0228/160456.334:ERROR:device_event_log_impl.cc(211)] [16:04:56.333] Bluetooth: bluetooth_adapter_winrt.cc:1072 Getting Default Adapter failed.

  • 可以这样关闭

from selenium import webdriver

# 加上参数,禁止 chromedriver 日志写屏 options = webdriver.ChromeOptions() options.add_experimental_option( 'excludeSwitches', ['enable-logging'])

wd = webdriver.Chrome(options=options # 这里指定 options 参数 )

标签:webdriver,浏览器,python,Selenium,selenium,Chrome,自动化
From: https://blog.51cto.com/redone/9536175

相关文章

  • 很好用的python游戏环境(续2):强化学习算法走迷宫游戏环境(导航问题 navigation):分享一个py
    相关前文:很好用的python游戏环境(续):强化学习算法走迷宫游戏环境(导航问题navigation):分享一个python语言的迷宫游戏环境项目的GitHub地址:https://github.com/Wonz5130/Maze_AIPS.这个游戏有个非常严重且致命的error,那就是单击这个游戏界面的时候会自动转成AI执行,否则就是人......
  • SpringBoot自动化配置原理
    先在pom.xml文件中引入配置依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>2.1.4.RELEASE</version>&......
  • 【APP自动化进阶】APP自动化项目框架实战
    一、自动化项目介绍1.涉及技术栈pythonappiumseleniumpytestalluresubprocessadb2.实现的功能概述APP自动化执行支持pytest生成测试报告多线程执行自动开启、关闭appium、allure等服务二、框架及项目结构项目目录app---apk文件base---核心方法driver.py-......
  • 很好用的python游戏环境(续):强化学习算法走迷宫游戏环境(导航问题 navigation):分享一个pyt
    相关:很好用的python游戏环境:强化学习算法走迷宫游戏环境(导航问题navigation):分享一个python语言的迷宫游戏环境前文分享了一个python下的maze游戏环境,本文再给出一个不错的实现项目,这个项目的实现更加的简单,并且可视化界面做的很好看,是用tkinter框架做的可视化:相关:迷宫游戏p......
  • 【Selenium】控制当前已经打开的 chrome浏览器窗口(高级版)
    【Selenium】控制当前已经打开的chrome浏览器窗口(高级版)前言 https://blog.csdn.net/weixin_45081575/article/details/126389273利用 Selenium 获取已经打开的浏览器窗口,全python操作不同的是,本次全是用python来进行操作,省去了手动打开浏览器的操作,也相当于是......
  • SpringBoot自动化配置
    SpringBoot自动化配置一.SpringBoot自动化配置原理1.SpringBoot引导类注解介绍在SpringBoot的启动引导类上有一个@SpringBootApplication注解这个注解中有三个Spring的注解,分别是@SpringBootConfiguration/@CompoenetScan/@EnableAutoConfiguration2.@SpringBootCo......
  • python语言下的迷宫游戏的实现猜想
    由于本人是研究AI的,尤其是AI的强化学习方向,有时候就会对一些小游戏环境的实现有几分兴趣,因为刚看了有关reinforcementlearning解决maze游戏的论文,于是就突发奇想的对这个maze迷宫的实现有些想了解了。迷宫其实就是在一个表格上画线,然后构成的从某点到另一个点的一个通路的环境:......
  • 浅谈UI自动化测试
    为了让对自动化技术感兴趣的朋友们有真实案例的支持,今天我们给大家带来一期适合新手的UI自动化测试介绍。我们的目标是让大家能够轻松理解UI自动化测试的概念,并且能够亲自动手去实践。通过这个介绍,大家能够对UI自动化测试有一个整体的理解,并且能够自己动手去做。项目的选取:虽然U......
  • 快乐学Python,如何正确使用pandas处理时间类型的数据?
    在日常的数据分析工作中,常常会有根据日期来对数据进行分析。比如我们需要通过用户的下单时间来分析用户在不同时间段对商品的喜好;如通过访问日志的访问时间来分析系统的访问周期和负载,为不同时间段的资源调配提供依据;如通过用户刷短视频的时间来分析用户的行为特征和工作时间和工种......
  • 解决Python报错SSLError,如果试了网上一大堆方法还不行,看看这个吧!!
    前言这个问题困扰了群友一天,我怀着好奇心去试试看,不到5分钟给解决了哈哈。报错代码报错代码中对相关的host和url进行了替换,大家在网上发布内容也要注意隐私哈,多长个心眼子总没错。requests.exceptions.SSLError:HTTPSConnectionPool(host='xxx.com',port=443):Maxretries......