微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python+selenium————元素的八大定位方法

1.首先下载个Google chrome 或者Firefox

2.再下载个对应版本驱动http://chromedriver.storage.googleapis.com/index.html

  1. Chrome驱动文件下载:点击下载chromedrive
  2. Firefox驱动文件下载:点解下载geckodriver

3.然后往PyCharm 上装个插件

最后把对应版本驱动解压后放到项目中

,,,,,,,,,,,,,,,,,,,,,,,,,,接下来步入正题

定位元素的8种方式

定位一个元素定位多个元素含义
find_element_by_idfind_elements_by_id通过元素id定位
find_element_by_namefind_elements_by_name通过元素name定位
find_element_by_xpathfind_elements_by_xpath通过xpath表达式定位
find_element_by_link_textfind_elements_by_link_tex通过完整超链接定位
find_element_by_partial_link_textfind_elements_by_partial_link_text通过部分链接定位
find_element_by_tag_namefind_elements_by_tag_name通过标签定位
find_element_by_class_namefind_elements_by_class_name通过类名进行定位
find_elements_by_css_selectorfind_elements_by_css_selector通过css选择器进行定位

进入实战

打开一个Web页面,按下F12

#导包
from selenium import webdriver
dr=webdriver.Chrome()
dr.get("https://www.baidu.com/")
  • 通过id定位:dr.find_element_by_id("kw"),,,,,,定位到元素后可以通过比如:dr.find_element_by_id("kw").send_keys("往输入框输入内容")
  • 通过name定位:dr.find_element_by_name("wd"),,,,,,定位到元素后可以通过比如:dr.find_element_by_name("wd").click() 来做点击事件
  • 通过class name定位:dr.find_element_by_class_name("s_ipt")
  • 通过tag name定位:dr.find_element_by_tag_name("input")
  • 通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
dr.find_element_by_xpath("//*[@id='kw']")
dr.find_element_by_xpath("//*[@name='wd']")
dr.find_element_by_xpath("//input[@class='s_ipt']")
dr.find_element_by_xpath("/html/body/form/span/input")
dr.find_element_by_xpath("//span[@class='soutu-btn']/input")
dr.find_element_by_xpath("//form[@id='form']/span/input")
dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")

右键标签找到copy就可以复制XPath了

  • 通过css定位,css定位有N种写法,这里列几个常用写法:
dr.find_element_by_css_selector("#kw")
dr.find_element_by_css_selector("[name=wd]")
dr.find_element_by_css_selector(".s_ipt")
dr.find_element_by_css_selector("html > body > form > span > input")
dr.find_element_by_css_selector("span.soutu-btn> input#kw")
dr.find_element_by_css_selector("form#form > span > input")

    如果是页面上的文本超链接的话

  • 通过link text定位:
dr.find_element_by_partial_link_text("新")
dr.find_element_by_partial_link_text("hao")
dr.find_element_by_partial_link_text("123")

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐