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 ... 
随机推荐
- 王炸!!IDEA 2021.1 推出语音、视频功能,边写代码边聊天,我真的服了…
			IDEA 2020.3 刚没用多久,2021.1 又陆续给我推送更新了: 启动就提醒更新,麻烦,那不如更新下,体验下新版本. 如上图所示,2021.1 更新了 9 个新特性,下面栈长会一一体验给大家介 ... 
- Spring 学习笔记(三):Spring Bean
			1 Bean配置 Spring可以看做是一个管理Bean的工厂,开发者需要将Bean配置在XML或者Properties配置文件中.实际开发中常使用XML的格式,其中<bean>中的属性或 ... 
- 《剑指offer》刷题笔记
			简介 此笔记为我在 leetcode 上的<剑指offer>专题刷题时的笔记整理. 在刷题时我尝试了 leetcode 上热门题解中的多种方法,这些不同方法的实现都列在了笔记中. leet ... 
- kali 中的内置工具
			askDing Life is short,use python 博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 | 管理 随笔: 326 文章: 5 评论: 4 引用: 0 kali菜 ... 
- 技术面试问题汇总第001篇:猎豹移动反病毒工程师part1
			我在2014年7月1日参加了猎豹移动(原金山网络)反病毒工程师的电话面试,但是很遗憾,由于我当时准备不足,加上自身水平不够,面试官向我提出的很多技术问题我都没能答出来(这里面既有基础类的问题,也有比较 ... 
- 缓冲区溢出分析第10课:Winamp缓冲区溢出研究
			前言 Winamp是一款非常经典的音乐播放软件,它于上世纪九十年代后期问世.与现在音乐播放软件行业百家争鸣的情况不同,当时可以说Winamp就是听音乐的唯一选择了,相信那个时代的电脑玩家是深有体会的. ... 
- 《IDA Pro 代码破解解密》笔记一
			博客地址:http://blog.csdn.net/qq1084283172/article/details/53158970 return 0; C语言返回0语句的汇编形式 Intel-32汇编: ... 
- UVA11248 网络扩容(枚举割边扩充)
			题意: 给你一个有向图,问你从1到n的最大流是多少?如果流量大于等于C那么直接输出一个串,否则输出只扩充一条边的流量就可以达到1->n大于等于C的所有边,如果扩充不了就输出另一个串.S ... 
- 模板templates的使用
			目录 模板及其渲染 模板查找路径 DTL模板语法 常用的模板标签 DTL常用过滤器 模块结构优化 加载静态文件 模板及其渲染 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面 ... 
- Nmap 扫描器的使用技巧
			1.nmap语法 -A 全面扫描/综合扫描 例如:nmap -A 127.0.0.1 扫描指定段 例如:nmap 127.0.0.1-200&nmap 127.0.0.1/24 2.Nmap ... 
