Selenium 给我们提供了 8 种的定位元素方法
-
find_element_by_id()
通过ID查找元素,也就是页面中的ID属性,例如:id = username
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_id('username').send_keys("admin")
-
find_element_by_name()
通过查找元素的时候,找到“name=”,这样子我们就可以用到这个方法了
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_name('username').send_keys("admin")
-
find_element_by_class_name()
通过查找元素的时候,找到“class=”,这样子我们就可以用到这个方法了
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_class_name('username').send_keys("admin")
-
find_element_by_tag_name()
在检查元素的时候查看元素的最前面的 input,但是这个定位方式有个不好的地方在于很多页面都有同样的标签存在,
所以我们定位的时候会很麻烦。所以,这个方法我们不推荐使用。执行还会报错,就想死脑筋用的话,要精卫定位即可
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_tag_name('input').send_keys("admin")
-
find_element_by_link_text()
查找文本信息,页面看到的文本,直接可以定位。
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('登录').clink()
-
find_element_by_partial_link_text()
通过模糊文本信息查找元素,有些时候,我们希望定位到一个文本比较长的元素时,我们就可以通过这个方法去定位
假如:定位的脚本元素是‘欢迎来到我的世界’,可以输入其中几个,比如输入“世界”
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_partial_link_text('世界').clink()
-
find_element_by_xpath()
这是一种最常用的定位方法,通过查找元素的xpath路劲去查找
使用方法:打开页面,点击F12,定位需要的元素(登录),右键Copy,选择 Copy xpath即可
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_xpath('//*[@id="u1"]/a').send_keys('admin')
-
find_element_by_css_seleter()
在方法上,css和xpath使用的比较频繁,也比较简单
使用方法:打开页面,点击F12,定位需要的元素(登录),右键Copy,选择Copy selecter即可
from selenium import webdriver
driver = webdriver.Chrom()
driver.get('http://www.baidu.com')
driver.find_element_by_css_selector('#u1 > a').send_keys('admin')
PS:在这8种方法中,最后的2种最实用