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()来清空输入框

posted @ 2020-12-02 19:24  山君与见山  阅读(499)  评论(0编辑  收藏  举报