一:使用selenium定位元素的不同方法
打开浏览器同时打开开发者模式,点击红色圆圈图标可同时点击需要进行定位的元素,右侧会高亮显示该元素
- id定位 find_element_by_id()
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_id('kw').send_keys('带你飞')#通过id定位元素并发送文本
- class定位 find_element_by_class_name()
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_class_name('s_ipt').send_keys('带你飞')#通过class定位元素并发送文本
- name定位 find_element_by_name()
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_name('wd).send_keys('带你飞')#通过class定位元素发送文本
- tag定位 find_element_by_tag_name()
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_tag_name('input').send_keys('baidu')
- linktext定位 find_element_by_link_text()
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_id('kw').send_keys('带你飞')#通过id定位元素并发送文本 driver.find_element_by_link_text("百度一下").click()#通过linktext定位元素同时点击
- partial_link定位 find_element_by_partial_link_text(),如果打开超链接文本过长,通过link需要全部输入,这样比较麻烦,可以使用该方法实现模糊匹配
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 find_element_by_partial_link_text("百度").click()#通过partial_link定位元素同时点击
- css定位 find_element_by_css_selector(),定位速度较快,但是学习起来会比较难理解,如果懂前端css样式,会比较简单,但是实际中该定位元素的方法使用较少
from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_css_selector("#kw").send_keys("selenium定位方法")
- xpath定位 find_element_by_xpath(),前面的几种定位方法都是在理想状态下,使用范围有限。页面中,每个元素都有唯一的id或name或class或超链接文本的属性,那么我们就可以通过这个唯一的属性值来定位他们。
但是在实际工作中,有时候我们要定位的元素并没有id,name,class属性,或者多个元素的这些属性值都相同,又或者刷新页面,这些属性值都会变化。那么这个时候我们就只能通过xpath或者CSS来定位了。from selenium import webdriver driver = webdriver.Chrome()#打开浏览器 driver.get('http://www.baidu.com')#打开百度网页 driver.maximize_window()#窗口最大化 driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium定位方法")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。