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()        
# 后退

 

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值