selenium Python定位元素和相关事件

场景

通过使用selenium python的API能够很好的定位html中的元素,并指挥鼠标进行点击。

定位元素

find_element_by_*方法

  • find_element_by_id(id_) : html标签中的id确定标签
  • find_element_by_link_text(link_text):html标签中的文本内容确定标签
  • find_element_by_partial_link_text(link_text):html标签中的文本部分内容确定标签
  • find_element_by_xpath(xpath):使用xpath语法来确定html标签

这里前3种方式都比较好理解,相对陌生的就是Xpath语法,xpath例子:

# -*- coding: utf-8 -*-
from selenium import webdriver
# 包含ABC字符串的html标签,然后,再向上找两层父节点
mouse = driver.find_element_by_xpath("//*[contains(text(),'ABC')]/../..")

这里如果是中文,需要在Python源代码最上面一行设置:# -*- coding: utf-8 -*-.

点击事件

# click方法点击html标签
driver.find_element_by_id("Button1").click()

上面的这个方法可以会没有效果,因为有的页面设计成,必须需要鼠标先悬浮在html标签元素上,然后,进行点击才是有效点击,这样的事件,应使用如下方式处理:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# 使用xpath语法找到元素
mouse = driver.find_element_by_xpath("//*[contains(text(),'ABC')]/../..")
# move_to_element方法让鼠标实现悬浮事件
# click方法让鼠标进行点击事件
# perform方法统一完成上述2个事件
ActionChains(driver).move_to_element(mouse).click(mouse).perform()

这里主要就是ActionChains的使用。

输入事件

# 找到html标签,使用send_keys方法键盘输入hello
driver.find_element_by_id("uid").send_keys("hello")

参考

转载于:https://my.oschina.net/fxtxz2/blog/3052085

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值