selenium+python自动化笔记之一
一、webdriver的API与定位元素
| 元素定位核心部分 |
||
| 元素名称 | webdriver API | 说明 |
| id | find_element_by_id() | id定位 |
| name | find_element_by_name() | name定位 |
| class name | find_element_by_class_name() | class_name定位 |
| tag name | find_element_by_tag_name() | |
| link text | find_element_by_link_text() | 精准定位 |
| partial link text | find_element_by_partial_link_text() | 模糊定位 |
| xpath | find_element_by_xpath() | xpath定位 |
| css selector | find_element_by_css_selector() | css定位 |
| 元素操作方法 | |
| 方法 | 说明 |
| clear | 清除元素内容 |
| send_keys | 模拟按键输入 |
| click | 点击 |
| submit | 提交表单 |
二、使用xpath定位元素
1:XML路径语言:用来确定XML文档中某部分位置的语言;
2:XPath用于在XML文档中通过元素和属性进行导航
3:XPath是一个W3C标准
4:对xml/html有一定的了解
| 表达式 | 结果 |
| /xxx | 选取根节点xxx |
| /xxx/yyy | 根据绝对路径选择元素 |
| //xxx | 整个文档扫描,找到所有xxx元素 |
| //xxx/yyy | 所有父元素为xxx的yyy元素 |
| . | 选取当前节点的父元素节点 |
| .. | 选取父元素地址 |
| //xxx[@id] | 选取所有xxx元素中有id属性的元素 |
| //xxx[@id=yyy] | 选取所有xxx元素id属性为yyy的元素 |
| 表达式 | 结果 |
| //*[count(xxx)=2] | 统计xxx元素个数=2的节点 |
| //*[local-name()='xxx'] | 找到tag为xxx的元素 |
| //*[starts-with(local-name(),'x')] | 找到所有tag以x开头的元素 |
| //*[contains(local-name(),'x')] | 找到所有tag包含x的元素 |
| //*[string-length(local-name())=3] | 找到所有tag长度为3的元素 |
| //xxx|//yyy | 多个路径查找 |
三、鼠标和键盘事件
ActionChains类与输入事件
1:from selenium.webdriver.common.action_chains import ActionChains
2:ActionChains(driver):用于生成模拟用户行为
3:perform():执行存储行为
| 鼠标事件 | |
| 表达式 | 说明 |
| context_click | 右击事件 |
| double_click | 双击事件 |
| drag_and_drop | 拖动 |
| move_to_element() | 鼠标停留在一个元素上 |
| click_and_hold | 按下鼠标左键在一个元素上 |
| 键盘事件:send_keys() | |
| from selenium.webdriver.common.keys import Keys | |
| 表达式 | 说明 |
| send_kyes(Kyes.BACK_SPACE) | 退格键 |
| send_kyes(Kyes.CONTRL.'a') | 全选 |
| send_kyes(Kyes.CONTRL.'v') | 粘贴 |
| send_kyes(Kyes.CONTRL.'c') | 复制 |
| send_kyes(Kyes.CONTRL.'x') | 剪切 |
| send_kyes(Kyes.ENTER) | 回车 |
selenium+python自动化笔记之一的更多相关文章
- selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- selenium+python自动化登录脚本
利用selenium+python写的一个关于登录的自动化脚本
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- selenium+python自动化102-登录页面滑动解锁(ActionChains)
前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 seleniu ...
- selenium+python自动化100-centos上搭建selenium启动chrome浏览器headless无界面模式
环境准备 前言 selenium在windows机器上运行,每次会启动界面,运行很不稳定.于是想到用chrome来了的headless无界面模式,确实方便了不少. 为了提高自动化运行的效率和稳定性,于 ...
- selenium+python自动化之元素定位
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...
- selenium+python自动化之操作浏览器
一.打开网站 1.第一步:从selenium里面导入webdriver模块 2.打开Firefox浏览器(Ie和Chrome对应下面的) 3.打开百度网址 二.设置休眠 1.由于打开百度网址后,页面加 ...
- selenium+python自动化之环境安装
一.Python安装 1.操作系统:win7 64位系统 2.下载Python安装包,选择2.7版本和3.6版本都可以(最好安装2.7版本稳定)官网下载地址:https://www.python.or ...
随机推荐
- 04-TypeScript中的方法新功能(上)
在TypeScript中,提供了一些函数的新功能,能够简化JavaScript中的一些比较复杂代码才能实现的一些能力. 在C#后端语言中,能够对方法传递的参数指定params关键字,也就是可以传递任意 ...
- xml与Excel转换
使用Python将如下xml格式转换为Excel格式: xml转为xls格式文件: xml格式如下: <?xml version="1.0" encoding="U ...
- Android生成自定义二维码
前面说过两种二维码扫描方式,现在说如何生成自定义酷炫二维码.二维码生成需要使用Google开源库Zxing,Zxing的项目地址:https://github.com/ZBar/ZBar,我们只需要里 ...
- Netty入门——客户端与服务端通信
Netty简介Netty是一个基于JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性.换句话说,Netty是一个NIO框架,使用它可以简单快速 ...
- 完整的一次 HTTP 请求响应过程(二)
上篇文章 我们完整的描述了计算机五层模型中的『应用层』和『运输层』,阐述了较为复杂的 TCP 协议的相关原理,相信大家一定也有所收获,那么本篇将继续五层模型的学习. 网络层 『网络层』其实解决的就是一 ...
- 关于wepack的使用总结以及优化探讨
一.前言 不知不觉,webpack版本已经到4.0了.使用它也有很长一段时间了,回头看看,自己木有总结webpack方面的知识,现在有空起个头,主要是总结自己常用的配置和一下优化的探讨,以后有啥想法也 ...
- 【学习笔记】JS经典异步操作,从闭包到async/await
参考文献:王仕军——知乎专栏前端周刊 感谢作者的热心总结,本文在理解的基础上,根据自己能力水平作了一点小小的修改,在加深自己印象的同时也希望能和各位共同进步... 1. 异步与for循环 抛出一个问题 ...
- C# ACtiveMQ 收发数据
1.下载ActiveMQ 官方网站下载地址:http://activemq.apache.org/ 2.运行ActiveMQ 解压缩apache-activemq-5.10.0-bin.zip,然后双 ...
- 【开发工具之Spring Tool Suite】6、用Spring Tool Suite简化你的开发
如果你是一个喜欢用spring的人,你可能会在欣赏spring的强大功能外,对其各样的配置比较郁闷,尤其是相差较大的版本在配置文件方面会存在差异,当然你可以去花不少的时间去网上查找相关的资料,当你准备 ...
- 如何在UWP中统一处理不同设备间的页面回退逻辑
已经有一段时间没有写博客来记录自己的学习点滴了.现在回想起来确实有些惭愧,期间经历了一些事情,到目前为止算是平息了,是时候该收收心来充实自己了. 在本篇缪文中,楼主打算给UWP开发的初学者讲述一个在开 ...