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

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

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

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

3.然后往PyCharm 上装个插件

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

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

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

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

定位元素的8种方式

定位一个元素 定位多个元素 含义
find_element_by_id find_elements_by_id 通过元素id定位
find_element_by_name find_elements_by_name 通过元素name定位
find_element_by_xpath find_elements_by_xpath 通过xpath表达式定位
find_element_by_link_text find_elements_by_link_tex 通过完整超链接定位
find_element_by_partial_link_text find_elements_by_partial_link_text 通过部分链接定位
find_element_by_tag_name find_elements_by_tag_name 通过标签定位
find_element_by_class_name find_elements_by_class_name 通过类名进行定位
find_elements_by_css_selector find_elements_by_css_selector 通过css选择器进行定位

进入实战

打开一个Web页面,按下F12

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

#导包
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']")

python+selenium————元素的八大定位方法右键标签找到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")

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

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

  • 通过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")

 

上一篇:并发编程核心——七、脏读


下一篇:Linux lvs-DR模式配置详解