webUI自动化环境准备

webUI自动化环境准备

Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像用户在操作一样;我们通常所说的Selenium是对Seleninum的总称。

selenium核心组件

  • selenium webdriver client (目前主要使用,依赖于drivers)
  • selenium drivers(浏览器驱动,被webdriver client所依赖)
  • selenium IDE(入门录制工具)
  • selenium grid (可操作浏览器集群,也可操作app)

Selenium WebDriver

selenium webdriver 其实就是不同语言基于实现了W3C WebDriver协议从而达到能控制浏览器的代码库,它提供了简单的API接口使测试人员可以很方便的控制浏览器的各种行为;目前所支持的浏览器包括:Firefox、Chrome、IE、Edge、Opera、Safari。

运行机理:webdriver通过driver(浏览器驱动)将执行命令发送给浏览器;同样的浏览器在执行玩命令之后通过相同的通道将信息返回给webdriver。

整体就是一个C/S架构,我们的webdriver是作为客户端存在。

1、命令:pip install selenium -i <http://pypi.douban.com/simple> --trusted-host pypi.douban.com;

2、下载对应chrome浏览器驱动:http://chromedriver.storage.googleapis.com/index.html

查看本地安装的chrome版本

下载相同版本的驱动

下载完成后解压压缩包,把chromedriver.exe驱动文件复制到,Python根目录下

二、通过python+selenium实现打开一个商城

复制代码
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get(url='<https://mall.jctesting.cn/pc/>')
time.sleep(3)
driver.quit()

options

复制代码
from selenium import webdriver
from time import sleep

'''
# 创建Chromeoptions对象
options=webdriver.ChromeOptions()
# 窗体最大化,速度比 driver.maximize_window() 快
options.add_argument('start-maximized')         #添加参数

# 无头模式:启动浏览器进程,但不会显示出来
# options.add_argument('--headless')

# 去掉警告
# options.add_argument('disable-infobars')    #这是老版本的Chrome浏览器采用的去掉警告行驶
# 新版本的去掉警告(70以上版本)
options.add_experimental_option('useAutomationExtension',False)       #去掉开发者警告
options.add_experimental_option('excludeSwitches', ['enable-automation'])      #去掉黄条

# 创建Chrome对象
driver=webdriver.Chrome(options=options)
driver.implicitly_wait(10)
# driver.maximize_window()

sleep(5)

driver.get('<https://www.baidu.com/>')
driver.find_element_by_id('kw').send_keys('虚竹')
driver.find_element_by_id('su').click()
sleep(3)
# print(driver.title)
driver.quit()

三、一些依赖包的安装

pip install pyscreenshot # 用于屏幕截图

安装pykeyboard模块

pip install Pillow-PIL

pip install pywin32

pip install pyUserinput

pip install pykeyboard

相关推荐
Z21-X3 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
进击的荆棘5 小时前
Linux系统——线程同步与互斥之线程池和安全
linux·运维·服务器·安全·单例模式·线程
瑞雪兆丰年兮6 小时前
JavaWeb-day11-SpringBootWeb案例(文件上传)
java·运维·服务器·javaweb·oss
那明眸似水6 小时前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
小南家的青蛙8 小时前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
知已难寻18 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
Alluxio1 天前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
goehou1 天前
让 AI 替我操作这台电脑,先把手能伸多远定下来
windows·自动化·权限管理·ai agent
Sayai1 天前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
Elastic 中国社区官方博客1 天前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎