Python爬虫--Selenium模拟用户的键盘鼠标操作
废话不多说, 直接上代码
1、模拟键盘操作
#!/usr/bin/env python
# -*- coding:utf-8 -*-from selenium import webdriver# 要想调用键盘按键操作需要引入keys包
from selenium.webdriver.common.keys import Keys#创建浏览器对象
driver = webdriver.Firefox()driver.get("http://www.baidu.com")
#打印页面标题“百度一下你就知道”
print driver.title#生成当前页面快照
driver.save_screenshot("baidu.png")
# id="kw"是百度搜索框,输入字符串“微博”,跳转到搜索中国页面
driver.find_element_by_id("kw").send_keys(u"微博")
# id="su"是百度搜索按钮,click() 是模拟点击
driver.find_element_by_id("su").click()
# 获取新的页面快照
driver.save_screenshot(u"微博.png")
# 打印网页渲染后的源代码
print driver.page_source
# 获取当前页面Cookie
print driver.get_cookies()
# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
# 输入框重新输入内容
driver.find_element_by_id("kw").send_keys("test")
# 模拟Enter回车键
driver.find_element_by_id("su").send_keys(Keys.RETURN)
# 清除输入框内容
driver.find_element_by_id("kw").clear()
# 生成新的页面快照
driver.save_screenshot("test.png")
# 获取当前url
print driver.current_url
# 关闭当前页面,如果只有一个页面,会关闭浏览器 # driver.close()# 关闭浏览器
driver.quit()
2、鼠标动作
from selenium import webdriver
# 要想调用键盘按键操作需要引入keys包
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains
#创建浏览器对象
driver = webdriver.Chrome()driver.get("http://www.baidu.com") action1 = driver.find_element_by_id("su")
ActionChains(driver).move_to_element(action1).perform() #鼠标移动到某处action2 = driver.find_element_by_id("su")
ActionChains(driver).move_to_element(action2).click(action2).perform() #鼠标移动到某处单击action3 = driver.find_element_by_id("su")
ActionChains(driver).move_to_element(action3).double_click(action3).perform() #鼠标移动到某处双击action4 = driver.find_element_by_id("su")
ActionChains(driver).move_to_element(action4).context_click(action4).perform()# 鼠标移动到某处右击
3、Select表单
遇到下来框需要选择操作时,Selenium专门提供了Select类来处理下拉框
# 导入 Select 类
from selenium.webdriver.support.ui import Select
# 找到 name 的选项卡
select = Select(driver.find_element_by_name('status'))
#
select.select_by_index(1)
select.select_by_value("0")
select.select_by_visible_text(u"xxx")
- index 索引从 0 开始
- value是option标签的一个属性值,并不是显示在下拉框中的值
- visible_text是在option标签文本的值,是显示在下拉框的值
全部取消方法:
select.deselect_all()
4.弹窗处理
当页面出现了弹窗提示
alert = driver.switch_to_alert()
5.页面切换
一个浏览器肯定会有很多窗口,所以我们肯定要有方法来实现窗口的切换。切换窗口的方法如下:
driver.switch_to.window("this is window name")
6.页面前进和后退
操作页面的前进和后退功能:
driver.forward()
#前进
driver.back()
# 后退
Python爬虫--Selenium模拟用户的键盘鼠标操作相关推荐
- selenium模拟网页的键盘鼠标操作
Selenium可以模拟键盘和鼠标操作,下面是一些常用的方法: 1. 模拟键盘输入 ```python from selenium.webdriver.common.keys import Keys ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- python爬虫-selenium模拟登录豆瓣获取cookies给requests使用
1. selenium如何切换到iframe中操作 import time from selenium import webdriverurl = "https://www.douban.c ...
- Python爬虫——selenium模拟京东网站登录(一)
1.导入需要的库 import time from selenium import webdriver 2.浏览器获取驱动 需要下载跟chrome浏览器相匹配的驱动driverchrome.exe,详 ...
- [python爬虫]selenium模拟登录京东招聘网,爬取研发类,数据清洗,数据存储,终数据分析和可视化
目录 引入包 模拟登陆京东网 利用XPath对网页源代码进行解析 数据清洗 每页数据以追加形式保存至csv文件 保存数据到MongoDB数据库,参数为字典组成的列表 数据分析与可视化 总函数 引入包 ...
- Python爬虫 - Selenium(4)配置启动项参数
前言:本章将详细介绍Selenium启动项参数的配置,其中包括无界面模式(在服务器上运行不设置此项会报错).浏览器窗口大小设置.浏览器User-Agent (请求头)等等. 目录 一.常用参数 二.代 ...
- [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒
前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...
- [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...
最新文章
- 《Thinking in UML》读书笔记之一
- SpringCloud之微服务
- docker mysql 日志在哪里_docker容器启动后日志在哪里
- leetCode 110. Balanced Binary Tree 平衡二叉树
- TRUNCATE TABLE恢复-脚本
- ES11新特性_可选链操作符---JavaScript_ECMAScript_ES6-ES11新特性工作笔记064
- 让IT不加班,让业务不等待,一文讲透自助式分析的前世今生
- 书籍推荐 《移动Web手册》 奇舞团
- 机器学习第2课:单变量线性回归(Linear Regression with One Variable)
- URAL 1823. Ideal Gas(数学啊 )
- android绘制过程3d图形,Android开发 OpenGL ES绘制3D 图形实例详解
- LINUX下类似画图板Paint的工具
- iso硬盘安装 凤凰os_凤凰os系统下载_凤凰系统phoenix os官方下载-188软件园
- js混淆还原工具_JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
- Python用QQ邮箱发送邮件,支持抄送和附件
- 将ipone项目转到ipad平台以及开发同时支持这两个平台的项目
- rsem比对_基于二代测序的肿瘤新生抗原检测方法、装置和存储介质与流程
- Python视觉深度学习系列教程 第二卷 第3章 理解rank-1rank-5精度
- 让老师们哭笑不得的天才学生们
- 面试产品经理时如何回答“为什么想做产品经理”这个问题