
selenium
永远不要矫情
这个作者很懒,什么都没留下…
展开
-
selenium的PyAutoGUI模块
PyAutoGUI模块是一个图形用户界面自动化工具,通过屏幕的xy坐标系统确定目标位置,控制鼠标和键盘发送虚拟击键和鼠标点击,完成点击按钮,填写表单等操作,常用方法如下所示:使用之前需要安装该模块:pip install pyautogui例如:在http://www.jpress.io/user/register页面上有一个勾选框,通过id去查找,点击不上,点击不上的原因有:因为checkbox不规范,或者反爬虫代码等多种原因。使用click()方法即可解决。代码如下:import pyaut原创 2021-05-16 09:10:58 · 1052 阅读 · 0 评论 -
selenium的frame和iframe定位、切入及切出
frame标签有frameset,frame,iframe三种,frameset与普通标签没有区别,不影响正常定位,而frame,iframe对selenium定位方法是一样的,方法如下所示:例如在http://sahitest.com/demo/framesTest.htm中,想点击Link Test,代码如下:from selenium import webdriverfrom time import sleepclass TestCase(object): def __init_原创 2021-05-14 22:08:36 · 2022 阅读 · 0 评论 -
selenium中执行JavaScript的方法
WebDriver有两个方法来执行JavaScript,分别是:execute_script 同步执行execute_async_script 异步执行比较常见的应用是操作滚动条,代码如方法test4所示:from selenium import webdriverfrom time import sleepclass TestCase(object): def __init__(self): self.driver = webdriver.Chrome()原创 2021-05-14 21:29:46 · 688 阅读 · 0 评论 -
selenium的等待条件
在上一篇文章中,我们讲到了显示等待,在until的方法中使用的等待条件是:title_is。下面简单介绍了selenium的17种等待:序号方法名含义返回值1title_is判断title,是否出现布尔2title_contains判断title,是否包含某些字符布尔3presence_of_element_located判断某个元素是否被加到了dom树里,并不代表该元素一定可见WebElement4visibility_of _element原创 2021-05-14 21:29:07 · 488 阅读 · 0 评论 -
selenium的屏幕截屏
WebDriver内置了一些捕获屏幕并保存的方法:代码用例如下:from selenium import webdriverfrom time import sleep, strftime, localtime, timeimport osclass TestCase(object): def __init__(self): self.driver = webdriver.Chrome() self.driver.get('http://www.baid原创 2021-05-14 21:28:40 · 216 阅读 · 0 评论 -
selenium的三种等待方式
问题:在自动化测试中,必定会遇到环境不稳定,网络慢的情况,这时如果不做任何处理的话,代码会由于没有找到元素而报错。另外,一种情况就是页面使用ajax异步加载机制。这时我们就要用到 wait。selenium总共有三种等待方式:timd.sleep(固定等待)implicitly_wait(隐式等待)WebDriverWait(显示等待)1.固定等待timd.sleep(固定等待):可以自定义等待时间,但当网络条件良好时,依旧按照预设定的时间继续等待,导致整个项目的自动化时间无限延长。该方式适原创 2021-05-13 23:03:58 · 11305 阅读 · 6 评论 -
selenium的select类实现下拉列表的定位
selenium中的一个工具类select主要用于处理下拉列表,常用的方法如下:在这里,我们使用了和下面python文件同目录的form3.html,代码如下所示:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>title</title></head><body><form> provi原创 2021-05-13 21:30:16 · 502 阅读 · 1 评论 -
selenium的webElement核心方法和属性
1.核心属性在使用 webDriver 的find方法定位到元素后,会返回一个 webElement对象,该对象用来描述web页面上的一个元素from selenium import webdriverfrom time import sleepclass TestElement01(object): def __init__(self): self.driver = webdriver.Chrome() self.driver.get('http://s原创 2021-05-12 21:58:18 · 1552 阅读 · 2 评论 -
selenium的webDriver核心属性和方法
1.核心属性常用属性如下所示:代码如下:from selenium import webdriverfrom time import sleepclass TestCase01(object): def __init__(self): self.driver = webdriver.Chrome() self.driver.get('http://www.baidu.com') self.driver.maximize_window()原创 2021-05-12 21:01:12 · 780 阅读 · 1 评论 -
selenium的webDriver工作原理
1.背景我们使用打车例子,来理解webDriver的工作原理。当我们打车时,有三个角色:乘客:告诉司机去哪里,大概怎么走出租车司机:按照乘客的要求来操控出租车出租车:按照司机的操控来完成真正的行驶,把乘客送到目的地webDriver的工作原理也类似:工程师编写的测试代码:自动化测试代码发送请求给浏览器的驱动浏览器的驱动:解析代码后发送给浏览器浏览器:执行浏览器驱动发送来的指令,并最终完成工程师想要的操作。2.webDriver和浏览器的通信过程通信过程如下:对于每一条Sel原创 2021-05-12 20:59:22 · 692 阅读 · 0 评论 -
selenium的元素定位方法
selenium提供了定位元素的API,这些方法定位在WebDriver类中,例如:每个方法都会有复数形式的方法,即返回的结果是一个list方法名称描述find_element_by_id通过id定位元素,且id一般为唯一find_element_by_xpath通过xpath定位元素,在浏览器中选中元素后右击鼠标copy>copy xpath即可,路径唯一find_element_by_link_text通过连接的文本定位元素find_element_b原创 2021-05-11 22:27:31 · 317 阅读 · 0 评论 -
selenium之安装浏览器驱动
selenium中比较麻烦的问题是安装对应的浏览器驱动,只有安装正确版本的驱动,才能驱动浏览器自动测试。下载安装驱动需要如下几个步骤:检查浏览器版本下载对应版本驱动设置驱动环境变量测试驱动1.检查浏览器版本以Chrome浏览器为例,点击.菜单栏->帮助->关于 Google Chrome 查看。版本号比较长,主要版本号是第三个点号的前几位,最后的93为小版本,暂不考虑。2. 下载对应版本驱动下载地址为:https://www.selenium.dev/documentati原创 2021-05-11 21:45:56 · 4732 阅读 · 3 评论 -
selenium开发环境搭建
selenium开发使用Python作为客户端语言,在window环境中操作webDriver。环境搭建主要分为3个部分:Python安装Selenium安装PyCharm安装1.Python安装windows 下安装 Python 需要如下几个步骤:下载 Python安装 Python设置 Python的环境变量1.1 下载 Python4. 进入 Python 的官网:https://python.org/5. 选择"Downloads"菜单项6. 选择相应的版本,例如:原创 2021-05-11 21:00:09 · 440 阅读 · 0 评论 -
selenium的组成部分
selenium 是一个用于 web 应用程序自动化测试工具。selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。它主要的功能有:测试与浏览器的兼容性——测试应用程序看是否能够很好的工作在不同浏览器和操 作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求1.selenium的组成selenium包括三个项目,分别是:selenium webDriverselenium IDEselenium Grid...原创 2021-05-11 20:58:50 · 1675 阅读 · 2 评论 -
selenium解决验证码的方法
1.使用pytesseract模块和PIL模块解决pytesseract模块和PIL模块可以解决不太复杂的验证码问题。首先需要安装:pip install pytesseractpip install pil解决思路如下:截屏整个屏幕获得验证码坐标数据根据坐标数据抠图使用pytesseract模块进行验证代码如下:获取当前页面的验证码import timefrom selenium import webdriverfrom PIL import Imageimport p原创 2021-05-17 09:10:38 · 3554 阅读 · 0 评论 -
selenium的鼠标和键盘事件
selenium的鼠标和键盘事件被封装在ActionChains类中。常用方法如下:1.鼠标事件下面代码主要演示鼠标的单击,双击和右击。如下所示:from selenium import webdriverfrom time import sleepfrom selenium.webdriver import ActionChainsclass TestCase(object): def __init__(self): self.driver = webdrive原创 2021-05-15 09:57:14 · 435 阅读 · 0 评论