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 Excel2
文件上传: //划线处值得效仿 构造用户列表:User.java 批量保存用户
- RTSP 流相关工具介绍
RTSP (Real Time Streaming Protocol),实时流协议,是一种应用层协议,专为流媒体使用.本文将介绍 GStreamer, VLC, FFmpeg 这几个工具,如何发送.接 ...
- java面试系列<4>——IO
面试系列--javaIO 一.概述 java的IO主要分为以下几类: 磁盘操作:File 字节操作:InputStream 和 OutputStream 字符操作:Reader 和 Writer 对象 ...
- 代码安全丨第二期:URL重定向(跳转)漏洞
URL重定向: URL重定向(URLredirection)漏洞,又称跳转漏洞,指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中使用该链接.该安全漏洞给网络钓鱼攻击提供了极大的 ...
- Python容器相关操作
(集合与字典除外)的容器相关操作 (1)容器的拼接 >>> 'abc' + 'def' 'abcdef' (2)容器的重复 >>> (1, 2) * 3 (1, 2 ...
- 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求
目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...
- hdu4847 水题
题意: 你看了上面很长很长的一片英语课文之后,发现根本不用看,直接看输入输出就行了,就是给你一坨字符串,然后问你里面有几个doge(不区分大小写). 思路: 没啥说的,直接写吧 ...
- [CTF]ROT5/13/18/47位移密码
[CTF]ROT5/13/18/47位移密码 ---------------转换网站 https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php ROT5:只对数字 ...
- ThinkPHP5 Apache / IIs环境下 URL重写
thinkPHP5新版本 隐藏index.php隐藏index.php 都写好了 public 隐藏 独立主机可以直接把根目录指向public下 虚拟主机可以把public下的index.php放到根 ...
- 一、jmeter基础介绍及http请求取样器
jmeter的下载安装这里不再赘述,百度都有, 1.jmeter是以线程的方式来运行的:2.通过非GUI运行对负载机的资源消耗更小:3.控制机.负载机 安装JDK时jdk路径与jmeter路径避免有中 ...