废话不多说, 直接上代码

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模拟用户的键盘鼠标操作相关推荐

  1. selenium模拟网页的键盘鼠标操作

    Selenium可以模拟键盘和鼠标操作,下面是一些常用的方法: 1. 模拟键盘输入 ```python from selenium.webdriver.common.keys import Keys ...

  2. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  3. python爬虫-selenium模拟登录豆瓣获取cookies给requests使用

    1. selenium如何切换到iframe中操作 import time from selenium import webdriverurl = "https://www.douban.c ...

  4. Python爬虫——selenium模拟京东网站登录(一)

    1.导入需要的库 import time from selenium import webdriver 2.浏览器获取驱动 需要下载跟chrome浏览器相匹配的驱动driverchrome.exe,详 ...

  5. [python爬虫]selenium模拟登录京东招聘网,爬取研发类,数据清洗,数据存储,终数据分析和可视化

    目录 引入包 模拟登陆京东网 利用XPath对网页源代码进行解析 数据清洗 每页数据以追加形式保存至csv文件 保存数据到MongoDB数据库,参数为字典组成的列表 数据分析与可视化 总函数 引入包 ...

  6. Python爬虫 - Selenium(4)配置启动项参数

    前言:本章将详细介绍Selenium启动项参数的配置,其中包括无界面模式(在服务器上运行不设置此项会报错).浏览器窗口大小设置.浏览器User-Agent (请求头)等等. 目录 一.常用参数 二.代 ...

  7. [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒

    前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...

  8. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

最新文章

  1. 《Thinking in UML》读书笔记之一
  2. SpringCloud之微服务
  3. docker mysql 日志在哪里_docker容器启动后日志在哪里
  4. leetCode 110. Balanced Binary Tree 平衡二叉树
  5. TRUNCATE TABLE恢复-脚本
  6. ES11新特性_可选链操作符---JavaScript_ECMAScript_ES6-ES11新特性工作笔记064
  7. 让IT不加班,让业务不等待,一文讲透自助式分析的前世今生
  8. 书籍推荐 《移动Web手册》 奇舞团
  9. 机器学习第2课:单变量线性回归(Linear Regression with One Variable)
  10. URAL 1823. Ideal Gas(数学啊 )
  11. android绘制过程3d图形,Android开发 OpenGL ES绘制3D 图形实例详解
  12. LINUX下类似画图板Paint的工具
  13. iso硬盘安装 凤凰os_凤凰os系统下载_凤凰系统phoenix os官方下载-188软件园
  14. js混淆还原工具_JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
  15. Python用QQ邮箱发送邮件,支持抄送和附件
  16. 将ipone项目转到ipad平台以及开发同时支持这两个平台的项目
  17. rsem比对_基于二代测序的肿瘤新生抗原检测方法、装置和存储介质与流程
  18. Python视觉深度学习系列教程 第二卷 第3章 理解rank-1rank-5精度
  19. 让老师们哭笑不得的天才学生们
  20. 面试产品经理时如何回答“为什么想做产品经理”这个问题

热门文章

  1. 第八章 组织结构设计与类型
  2. 计算机网络常见笔试面试题(一)
  3. 版本管理-SVN分支,合并,切换
  4. 基于MATLAB的MIMO信道估计(附完整代码与分析)
  5. 毕业设计-基于JSP实现医院病历管理系统
  6. 如何删除已被谷歌收录的404错误页面
  7. 别用老派交易员眼光看市场回调
  8. python 求向量模长(一范二范)
  9. twisted的简单介绍
  10. 【RDMA】RoCE网络QoS|应用层设置PFC等级|Tos|Priority|TC