Python Selenium Webdriver 元素定位

Python Selenium Webdriver 元素定位

一、简单介绍:
1、webdriver属于selenium体系中设计出来操作浏览器的一套API,webdriver是python的一个用于实现web自动化的第三方库;
2、自动化要做的就是迷你鼠标和键盘来操作这些元素,比如点击、输入等,操作这些元素,必须先找到它们,所以webdriver中提供了8种元素定位的方法:

find_element_by_id
find_element_by_name
find_element_by_class_name
find_element_by_tag_name
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_xpath
find_element_by_css_selector

二、元素定位操作方法
1、以百度网页举例,首页打开百度网页;
2、鼠标右键选择“检查(N)”,就可以查看到html格式的网页
在这里插入图片描述
3、点击html页面左上角的三角形,然后再移动鼠标对应的按钮或输入框,就可以查看到每个按钮或输入框或其它空间所对应的id和name等相关信息了
在这里插入图片描述

三、元素定位解析及举例

1、id定位
说明:webdriver提供的id定位的方法是通过元素的id属性来查找元素的
方法:find_element_by_id
举例:通过id定位“百度一下”按钮

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("中国")
driver.find_element_by_id("su").click()

2、name定位
说明:webdriver提供的name定位的方法是通过元素的name名称来查找元素的
方法:find_element_by_name
举例:通过name定位百度输入框

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_name("wd").send_keys("python")
driver.find_element_by_id("su").click()

3、class_name定位
说明:通过元素类名定位元素
方法:find_element_by_class_name
举例:元素类名定位百度输入框

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_class_name("s_ipt").send_keys("selenium")
driver.find_element_by_id("su").click()

4、tag_name定位
说明:每个元素本质就是一个tag,但是HTML页面的tag重复性较高,一般很少用这个定位。
方法:find_element_by_tag_name
举例:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_tag_name("input")
driver.find_element_by_id("su").click()

5、link_text定位
说明:link_text定位专门用来定位文本链接的
方法:find_element_by_link_text
举例:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_link_text("新闻").click()
driver.back()
driver.find_element_by_link_text("hao123").click()
driver.back()
driver.find_element_by_link_text("地图").click()
driver.back()
driver.find_element_by_link_text("视频").click()
driver.back()
driver.find_element_by_link_text("贴吧").click()
driver.back()
driver.find_element_by_link_text("学术").click()
driver.back()
driver.find_element_by_link_text("更多产品").click()
driver.close()

6、partial_link_text定位
说明:partial_link_text定位是对link定位的一种补充,有些文本很长,这个时候我们可以取文本的一部分定位
方法:find_element_by_partial_link_text()
举例:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
try:
    driver.find_element_by_partial_link_text("主页").click()
    print('test pass: element found by partial link text')
except Exception as e:
    print("Exception found", format(e))

7、xpath定位
说明:绝对路径定位,利用元素属性定位,层级与属性结合,通过逻辑运算符定位
方法:find_element_by_xpath()
举例:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_xpath("//*[@id='kw']").send_keys("by_xpath")
driver.find_element_by_xpath("//*[@name='wd']").send_keys("by_xpath")
driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys("by_xpath")
driver.find_element_by_id("su").click()

8、css定位
说明:css使用选择器来为页面元素绑定属性
方法:find_element_by_css_selector()
举例:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("[ maxlength='255']").send_keys("八仙过海,各显神通")
driver.find_element_by_css_selector("[ value='百度一下']").click()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海黎明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值