Selenium Python教程(二)常用方法、鼠标事件和键盘事件

一、WebDriver常用方法

1.1 点击和输入

定位到元素之后,需要对元素进行操作,下面是WebDriver中一些最常用的方法

  1. clear():清除文本
  2. send_keys(value):模拟按键输入
  3. click():单击元素
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("chinaltx")
driver.find_element_by_id("su").click()

1.2 提交
  • submit():用于表单提交
#-*-coding:utf-8-*-
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

#提交
search_text = driver.find_element_by_id("kw")
search_text.send_keys("chinaltx")
search_text.submit()
1.3 其他常用属性
  1. size:返回元素的尺寸
  2. text:获取元素的文本
  3. get_attribute(name):获取属性值
  4. is_displayed():返回该元素的display状态
#-*-coding:utf-8-*-
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

#其他常用方法
#获取输入框的尺寸
size = driver.find_element_by_id("kw").size
print size

#返回百度页面底部备案信息
text = driver.find_element_by_id("cp").text
print  text

#返回元素的属性值,可以返回id、name、type等属性
id = driver.find_element_by_id("kw").get_attribute("id")
name = driver.find_element_by_id("kw").get_attribute("name")
type = driver.find_element_by_id("kw").get_attribute("type")
print id,name,type

#返回该元素的display状态
ifdisplay = driver.find_element_by_id("kw").is_displayed()
print ifdisplay

结果:

{'width': 500, 'height': 22}
©2019 Baidu 使用百度前必读 意见反馈 京ICP证030173号  京公网安备11000002000001号 
kw wd text
True

二、鼠标事件

WebDriver中所有关于鼠标操作的方法都封装在ActionChains类中

  • perform():执行所有ActionChains中存储的行为
  • context_click():模拟右击
  • double_click():模拟双击
  • drag_and_drop():模拟拖动
  • move_to_element():模拟悬停
#-*-coding:utf-8-*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.cn")

#测试move_to_element
above = driver.find_element_by_link_text("更多产品")
ActionChains(driver).move_to_element(above).perform()

#测试double_click()/click()
search_text = driver.find_element_by_id("kw")
search_text.send_keys("chinaltx")
submit = driver.find_element_by_id("su")
ActionChains(driver).move_to_element(submit).click().perform()

#测试drag_and_drop()
driver.get("http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
driver.switch_to_frame("iframeResult")
source  = driver.find_element_by_id("draggable")
target  = driver.find_element_by_id("droppable")
ActionChains(driver).drag_and_drop(source,target).perform()

三、键盘事件

  • 我们可以用send_keys()来模拟按键输入
  • 我们还可以模拟组合键
  • 模拟键盘输入的类在common模块的keys类中
#-*-coding:utf-8-*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 输入框输入内容
driver.find_element_by_id("kw").send_keys("chinaltxx")

# 删除多输入的一个 x
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)

# 输入空格键+“ 博客”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys("博客".decode("utf-8","ignore"))

# 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')

# ctrl+v 粘贴内容到输入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')

# 通过回车键来代替单击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
driver.quit()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值