selenium常用代码
from selenium import webdriver
# 1. 添加浏览器设置参数对象
options = webdriver.ChromeOptions()
# 2. 设置中文,与下载无弹窗指定路径
options.add_argument('lang=zh_CN.UTF-8')
prefs = { 'profile.default_content_settings.popups':0 ,'download.default_directory':'C:\\Users\\del'}
options.add_experimental_option('prefs',prefs)
# 3. 更换请求头
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
# 4. 生成浏览器对象
driver = webdriver.Chrome("无头浏览器位置",chrome_options=options)
driver.get('链接')
# 5. 使用xpath定位元素与元素属性
# 元素定位
元素 = driver.find_element_by_xpath('xpath表达式')
元素 = driver.find_element_by_link_text('文本链接')
元素 = driver.find_element_by_partial_link_text()('部分文本链接')
# 元素文本属性值
元素.text
# 获取元素属性值
元素.get_attribute(属性)
# 为True为元素可见
元素.is_displayed()
# 为True为元素可操作
元素.is_enabled()
# 6. 控制浏览器窗口大小,像素点宽480高800显示
driver.set_window_size(480,800)
# 7. 前进(返回之前的网页)与后退
driver.forward()
driver.back()
# 8. 模拟浏览器刷新当前页面
driver.refresh()
# 9. 简单元素操作:清除文本、模拟输入、单击元素
元素.clear()
元素.send_Keys('输入的值')
元素.click()
# 10. 提交表单,例如输入之后的回车操作
元素.submit()
# 11. 鼠标事件
# 导入提供数表操作的ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
# 鼠标悬停
ActionChains(driver).move_to_element(元素).perform()
# 鼠标拖拽
ActionChains(driver).drag_and_drop(拖拽元素,目标元素).perform()
# 鼠标右击
ActionChains(driver).context_click(元素).perform()
# 鼠标双击
ActionChains(driver).double_click(元素).perform()
# 12. 键盘事件
from selenium.webdriver.common.keys import Keys
元素.send_keys(Keys.F12)
# 13. 当前界面url
driver.current_url
# 14. 显示等待:每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
element = WebDriverWait(driver,最长超时时长,检测的间隔时间默认0.5s).until(
expected_conditions.presence_of_element_located((By.ID,'kw'))
)
# 15. 隐式等待,操作没有定位到元素则等待10s抛出异常
driver.implicitly_wait(10)
# 16.多表单切换:遇到frame或者iframe表单嵌套页面,要定位内嵌页面上的元素
driver.switch_to.frame(id或者name或者定位的frame元素)
# 跳出当前一级表单
driver.switch_to.parent_frame()
# 跳到最外层页面
driver.switch_to.default_content()
# 17. 多窗口切换
driver.switch_to.window(driver.window_handles[0])
# 18. 警告框处理:接受警告框
driver.switch_to_alert().accept
# 19. 操作cookie
# 获取cookie字典
driver.get_cookies()
# 获取cookie值
driver.get_cookie(name)
# 写入cookie
driver.add_cookie(cookie字典)
# 删除cookie信息
driver.delete_cookie(name)
driver.delete_all_cookies()
# 20. 执行js
driver.execute_script(js)
# 21. 窗口截屏
driver.get_screenshot_as_file()
# 22. 关闭窗口
driver.close()
# 23. 退出:退出驱动以及关闭所有窗口
driver.quit()
# 24. 捕捉log
import logging
logging.basicConfig(level=logging.DEBUG)
selenium常用代码的更多相关文章
- Selenium Web 自动化 - Selenium常用API
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏览器 ...
- [Python爬虫] 之六:Selenium 常用控件用法
Selenium 常用控件用法 1.文本框 上图中,如何定位搜索文本框,并输入搜索内容进行搜索 首先:利用方法 find_element_by_xpath定位元素:inputElements = se ...
- GCD 常用代码
GCD 常用代码 体验代码 异步执行任务 - (void)gcdDemo1 { // 1. 全局队列 dispatch_queue_t q = dispatch_get_global_queue(0, ...
- 转--Android实用的代码片段 常用代码总结
这篇文章主要介绍了Android实用的代码片段 常用代码总结,需要的朋友可以参考下 1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getE ...
- 刀哥多线程之03GCD 常用代码
GCD 常用代码 体验代码 异步执行任务 - (void)gcdDemo1 { // 1. 全局队列 dispatch_queue_t q = dispatch_get_global_queue(0, ...
- jquery常用代码集锦
1. 如何修改jquery默认编码(例如默认GB2312改成 UTF-8 ) 1 2 3 4 5 $.ajaxSetup({ ajaxSettings : { contentT ...
- Mysql:常用代码
C/S: Client Server B/S: Brower Server Php主要实现B/S .net IIS Jave TomCat LAMP:L Mysql:常用代码 Create table ...
- javascript常用代码大全
http://caibaojian.com/288.html 原文链接 jquery选中radio //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...
- Android 常用代码大集合 [转]
[Android]调用字符串资源的几种方法 字符串资源的定义 文件路径:res/values/strings.xml 字符串资源定义示例: <?xml version="1.0&q ...
随机推荐
- 黑马 - poi Excel
3.poi入门操作 3.1 搭建环境 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 <artifa ...
- JAVAEE_Servlet_02_Servlet接口实现类HttpServlet
Servlet接口实现类 * Servlet接口: Servlet接口是来自于Servlet规范下的一个接口,存在于HTTP服务器(Tomcat)所提供的jar包中.Servlet-api.jar. ...
- 测试报告模板:HTMLTestRunner.py(新版)
报告样式效果: 报告源码:HTMLTestRunner.py 1 """ 2 A TestRunner for use with the Python unit test ...
- MySQL8安装教程及问题解决
目录 1.下载MySQL的zip文件,解压,在根目录(bin所在的目录)下创建my.ini文件 2.管理员模式打开命令提示符(shell或者说小黑窗),按以下命令操作. 3.不过......我这里密码 ...
- Python Basics with numpy (optional)
Python Basics with Numpy (optional assignment) Welcome to your first assignment. This exercise gives ...
- python3使用迭代生成器yield减少内存占用
技术背景 在python编码中for循环处理任务时,会将所有的待遍历参量加载到内存中.其实这本没有必要,因为这些参量很有可能是一次性使用的,甚至很多场景下这些参量是不需要同时存储在内存中的,这时候就会 ...
- Linux文件共享服务之NFS
NFS(Network File System) 网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...
- CVE-2012-0774:Adobe Reader TrueType 字体整数溢出漏洞调试分析
0x01 TrueType 字体 TTF 字体是 Apple 和 Microsoft 两家公司共同推出的字体格式,现在已经广泛的运用于 Windows 操作系统,其中 PDF 文档也可以嵌入 TTF ...
- Andrew Ng机器学习算法入门(九):逻辑回归
逻辑回归 先前所讲的线性回归主要是一个预测问题,根据已知的数据去预测接下来的情况.线性回归中的房价的例子就很好地说明了这个问题. 然后在现实世界中,很多问题不是预测问题而是一个分类问题. 如邮件是否为 ...
- 【一】kubernetes学习笔记-Pod概念
一.Pod 控制器类型 Pod概念 当一个 Pod 创建后,Pause 容器就会随着 Pod 启动,只要是有 Pod,Pause 容器就要被启动. 在同一个 Pod 里面的容器不能出现端口冲突,否则这 ...