python+selenium的八种定位方法
1、通过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").click() #获取输入框的id进行元素定位,然后点击 driver.find_element_by_id("kw").send_keys("你好")
2、通过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").click() #获取输入框的name进行元素定位,然后点击 driver.find_element_by_name("wd").send_keys("你好")
3.通过class定位
find_element_by_class_name()
例子
选择class
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌浏览器 driver.get("https://www.baidu.com/") #打开百度 driver.find_element_by_class_name("s_ipt").click() #获取输入框的class进行元素定位,然后点击 driver.find_element_by_class_name("s_ipt").send_keys("你好")
4.通过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("area").click() #点击百度log图标
5.通过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() #获取文字,来选中元素位置
6.通过partial_link_text定位
find_element_by_partial_link_text()
例子(partial _link 是一种模糊匹配的方式,对于超长的字符串截取其中的一部分)
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌浏览器 driver.get("https://www.baidu.com/") #打开百度 driver.find_element_by_partial_link_text("嫦娥五号").click() #获取文字,来选中元素位置
7.通过xpath定位(如果网页中元素位置变了,那么就会定位不到元素,xpath获取的是相对位置)
find_element_by_xpath()
例子
选中代码行点击右键
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌浏览器 driver.get("https://www.baidu.com/") #打开百度 driver.find_element_by_xpath("/html/body/div/div[2]/div[5]/div[1]/div/form/span[2]/input").click() #获取文字,来选中元素位置
8.通过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("[class='s_ipt']").send_keys("h")
在输入框后可加.clear()来清空输入框