
selenium 快速入门系列
文章平均质量分 71
selenium 快速入门系列
劫天
一日练一日功,一日不练百日空
展开
-
Selenium系列教程 - 番外篇 控制浏览器的两种方式
对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。会发现打印出了 “百度一下,你就知道” 的网页标题。这样我们就实现了对一个已打开的浏览器的控制。利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。对于-remote-debugging-port值,可以指定任何打开的端口。现在,我们需要接管上面的浏览器。更多需求可以自己在此基础上进行修改。原创 2022-11-02 11:21:23 · 1057 阅读 · 1 评论 -
Selenium系列教程 - AutoIt命令行参数
主要内容一、AutoIt下载安装二、AutoIt使用1、识别控件2、编写脚本3、生成exe程序三、通过命令行执行四、通过Python用os模块调用Selenium对网页进行UI自动化时经常会遇到Windows弹框,比如上传、下载框,对于这种弹框,Selenium无法处理,我们常常会选择AutoIt这个工具。一、AutoIt下载安装AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的 免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用原创 2022-01-26 09:15:00 · 12685 阅读 · 1 评论 -
Selenium系列教程 - 文件上传
主要内容一、通过send_keys方法(该方法只适用于input标签)二、通过AutoIt来处理上传文件(适用所有)三、多文件上传在Web UI自动化测试中可能会遇到文件上传的场景,针对该场景我们要区分上传按钮的种类,大体上可以分为两种,一种是input框<input type="file">,另外一种就比较复杂,通过js等实现。一、通过send_keys方法(该方法只适用于input标签)查看上传按钮的元素标签为input标签,调用send_keys方法传入文件路径即可,无需模拟弹出wi原创 2022-01-25 17:21:08 · 13669 阅读 · 2 评论 -
Selenium系列教程 - 分布式自动化测试 selenium-server-standalone 搭建
主要内容1. 预置环境2. Selenium Grid 环境安装3. Selenium Grid 启动服务中心(hub)和节点(node)3.1 启动 hub3.2 注册 node4. 应用1. 预置环境 Java 环境 Python3 环境2. Selenium Grid 环境安装Selenium Grid 是 Selenium 套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上。优点:同时在不同的浏览器、操作系统和机器上运行测试。最大程度用于兼容性测试;减原创 2021-09-29 15:56:33 · 3208 阅读 · 2 评论 -
Selenium系列教程 - 下拉列表处理(select标签、非select标签)
主要内容1.下拉列表类型2. Select 下拉列表处理2.1. Select 方法列表2.2. Select 示例代码3. 非 Select 下拉列表处理下拉列表的类型可以分为 select 标签和非 select 标签,如:......原创 2021-08-02 16:45:17 · 2596 阅读 · 4 评论 -
Selenium系列教程 - 使用 expected_conditions 判断元素
1. expected_conditions 模块我们看一下 expected_conditions 提供的条件有哪些:......expected_conditions 模块最常见的就是与 WebDriverWait 配合使用,如:......原创 2021-07-20 17:31:09 · 1527 阅读 · 0 评论 -
Selenium系列教程 - 日期控件处理
除了上面这种,你还会遇到各种花里胡哨的日期控件,如果一个个想着怎么去选择,可能你会疯掉! 其实很简单,我们可以把它当成一个普通的input框来处理!但是,很多此类型的input框都是禁止手动输入的,这时候我们就可以用js把禁止输入的readonly属性干掉就好了。原创 2021-03-09 14:32:28 · 1140 阅读 · 0 评论 -
Selenium系列教程 - WebDriverWait 详解以及自定义判断条件
主要内容1. WebDriverWait 参数与调用方法2. expected_conditions 模块3. WebDriverWait 与 expected_conditions 示例代码4. 自定义条件4.1 使用 lambda4.2 封装一个类1. WebDriverWait 参数与调用方法from selenium.webdriver.support.wait import WebDriverWait----------------------------------------------原创 2021-01-20 18:09:05 · 11497 阅读 · 8 评论 -
Selenium系列教程 - 解读selenium等待方式
主要内容1. 强制等待 (`time.sleep()`)2. 显式等待 (`WebDriverWait`)3. 隐式等待 (`implicitly_wait()`)1. 强制等待 (time.sleep()) 当一个页面被加载到浏览器时, 该页面内的元素可以在不同的时间点被加载。这使得定位元素变得困难, 如果元素不再页面之中,会抛出异常。最糟糕的案例是使用time.sleep(),它是一种最简单粗暴的方法,将条件设置为等待一个确切的时间段。from selenium import webdriv原创 2021-01-15 16:18:19 · 1314 阅读 · 2 评论 -
Selenium系列教程 - 使用Keys模拟键盘操作
这里写目录标题1. Keys类简介2. Keys方法列表3. Keys实例1. Keys类简介 平常我们会用到很多快捷键,那么如何来模拟快捷键操作呢。selenium中给我们提供了大部分的键盘操作方法,如:全选、复制、粘贴等。首先需要导入Keys这个包。 from selenium.webdriver.common.keys import Keys2. Keys方法列表class Keys(object): """ Set of special keys codes.原创 2021-01-12 11:43:07 · 3367 阅读 · 7 评论 -
Selenium系列教程 - 使用ActionChains模拟鼠标操作
主要内容1. ActionChains类简介2. ActionChains方法列表3. ActionChains实例1. ActionChains类简介 前面我们在Selenium系列教程 - 页面元素操作中使用到element.click()方法点击元素,实际上鼠标的操作不单单只有单击,现在页面中随处可以看到需要右击、双击、鼠标悬停、甚至是鼠标拖动等操作。 selenium中给我们提供了ActionChains类来处理这类事件。注意,当你调用ActionChains的方法时,不会立即执行原创 2021-01-10 14:51:03 · 1312 阅读 · 0 评论 -
Selenium系列教程 - 番外篇 js定位
主要内容前言1. 定位单个元素 a. 通过id定位 b. 通过css选择器定位2. 定位一组元素 a. 通过name定位 b. 通过标签名定位 c. 通过class类定位 d. 通过css选择器定位示例代码前言 我们除了可以使用selenium的方法定位元素外,还可以通过js来定位,以下总结了几种常用的js定位方法:1. 定位单个元素 a. 通过id定位 document.getElementById("id") b. 通过css选择器定位 document.原创 2020-12-29 13:28:06 · 585 阅读 · 0 评论 -
Selenium系列教程 - 调用JavaScript
主要内容1. JavaScript的使用(原生js和jq方式)a. 获取元素的属性b. 设置元素的属性c. 删除元素的属性2. Selenium如何执行JavaScript3. 应用场景a. 日期控件b. 滚动视图c. 输入文本1. JavaScript的使用(原生js和jq方式)a. 获取元素的属性//原生js.getAttribute("属性")//jquery.attr("属性")------------------------------------------------------原创 2020-12-18 18:06:33 · 2198 阅读 · 2 评论 -
Selenium系列教程 - switch_to讲解:切换handle、frame、alert
主要内容多窗口切换(handle)frame切换处理Alert弹窗多窗口切换(handle)current_window_handle # 获取当前页面窗口的句柄window_handles # 获取所有页面窗口的句柄switch_to.window(window_name) # 将定位的页面切换到指定的window_name页面(window_name:指定页面窗口的handle)# 切换到新窗口关键代码all_handles =原创 2020-12-18 16:00:51 · 2006 阅读 · 4 评论 -
Selenium系列教程 - 浏览器控制
这节主要介绍的是操作浏览器本身的方法,比如打开浏览器,关闭浏览器,设置浏览器的大小和浏览器前进后退等。首先是如何打开浏览器地址:get()设置浏览器大小:set_window_size()在执行自动化脚本时一般都是在全屏模式下执行,这时可以使用maximize_window()使浏览器最大化:maximize_window()相应的还提供了浏览器最小化方法:minimize_window()控制浏览器后退:back()控制浏览器前进:forward()刷新页面原创 2020-12-17 16:18:21 · 326 阅读 · 1 评论 -
Selenium系列教程 - 页面元素操作
前面我们已经学会了如何定位元素,这只是自动化测试的第一步,接下来我们需要对元素进行操作。清除文本输入框element.clear() # 这里 element 代表定位到的元素,下同点击元素element.click()输入文本element.send_keys()提交表单element.submit()获取元素标签名element.tag_name # 注意这里没有括号获取元素文本内容element.text # 注意这里没有括号获取元素位置elemen原创 2020-12-17 15:34:21 · 408 阅读 · 1 评论 -
Selenium系列教程 - xpath定位和css定位
实际项目中使用较多的是xpath定位和css定位。XPath是XML文档中查找结点的语法,换句话就是通过元素的路径来查找这个元素。xpath比较强大,而css选择器在性能上更优,运行速度更快,语法上更简洁。以下分别用两种方法定位百度搜索框:ID定位XPATH中的元素id使用以下内容定义:[@id='kw'],而在CSS中使用:#kw。XPATH:find_element_by_xpath("//input[@id='kw']")CSS: find_element_by_css_sel原创 2020-12-17 14:05:47 · 1662 阅读 · 1 评论 -
Selenium系列教程 - 元素定位(下)
自动化测试中的核心是元素定位,只有在定位到对象的基础上,才可以对对象进行操作。 在一个页面中有很多种方法可以定位到元素。在项目中,你可以选择最合适的方法去定位到元素,selenium提供了以下方法:定位单个元素(匹配第一个符合条件的元素)find_element_by_idfind_element_by_namefind_element_by_tag_namefind_element_by_class_namefind_element_by_link_textfind_elem原创 2020-12-17 11:32:13 · 417 阅读 · 2 评论 -
Selenium系列教程 - 元素定位(上)
首先我们打开百度首页,页面上有输入框、按钮、文字、图片、链接等,我们要做的就是模拟鼠标和键盘来操作这些元素。那么我们要操作这些元素的前提是找到它们。那么如何找到他们呢?在输入框点击右键,然后选择检查,如下图:从上图可以看到,百度输入框有个ID属性:id=”kw”,我们这里通过id属性来定位到这个元素(我们选择的这个属性要有别与其他元素的属性,换言之,这个id要具备唯一性)接下来,我们写个简单的脚本:1)启动浏览器,我们这里用Chrome2)打开百度首页,https://www.baidu.c原创 2020-12-17 10:57:05 · 364 阅读 · 0 评论