1. 程式人生 > 實用技巧 >04、簡單的元素定位

04、簡單的元素定位

一、by_id

1 from  selenium import webdriver
2 import time
3 bf = webdriver.Chrome() #使用谷歌瀏覽器驅動
4 bf.maximize_window()    #最大化視窗
5 bf.get("http://www.baidu.com")  #開啟百度
6 bf.find_element_by_id("kw").send_keys("selemium") #ID定位輸入框並且輸入selenium,ID值是唯一的
7 time.sleep(2)
8 bf.quit()

二、by_name

1 bf.find_element_by_name("
wd").send_keys("python") #name定位並且輸入python 2 #取的是name的值,name不一定唯一

三、by_class_name

1 bf.find_element_by_class_name("s_ipt").send_keys("hello") #chass_name 定位並且輸入hello
2 #取的是class的值,by_class_name不一定唯一

四、by_tag_name

  單數形式:頁面中唯一tag_name時使用,如果有多個,預設定位的第一個標籤

1 from  selenium import webdriver
2 import
time 3 bf = webdriver.Chrome() #使用谷歌瀏覽器驅動 4 bf.maximize_window() #最大化視窗 5 bf.get("http://www.baidu.com") #開啟百度 6 #單數形式 7 ele = bf.find_element_by_tag_name("input")#將tagname賦給ele變數 8 print(ele.get_attribute("outerHTML"))#列印ele變數的標籤

  複數形式:當多個標籤相同元素時,得到所有元素,相當於得到一個列表,可以對列表(元素)進行操作

 1 from  selenium import
webdriver 2 import time 3 bf = webdriver.Chrome() #使用谷歌瀏覽器驅動 4 bf.maximize_window() #最大化視窗 5 bf.get("http://www.baidu.com") #開啟百度 6 #複數形式 7 eles = bf.find_elements_by_tag_name("input")#定位所有的tagname標籤,相當於一個列表 8 print(len(eles)) #計數多少個eles標籤 9 for i in eles: #遍歷列印這些標籤 10 print(i.get_attribute("outerHTML"))

五、by_link_text超連結定位

該定位方式必須輸入超連結的全稱

1 from  selenium import webdriver
2 import time
3 bf = webdriver.Chrome() #使用谷歌瀏覽器驅動
4 bf.maximize_window()    #最大化視窗
5 bf.get("http://www.baidu.com")  #開啟百度
6 bf.find_element_by_link_text("地圖").click()#超連結方式定位百度上方的地圖連結
7 time.sleep(2)
8 bf.quit()

六、by_partial_link_text

該定位方式可輸入超連結的簡稱,切簡稱必須是連續的,如百度地圖,可以輸入百度/地圖/度地,但是不能輸入百圖

1 from  selenium import webdriver
2 import time
3 bf = webdriver.Chrome() #使用谷歌瀏覽器驅動
4 bf.maximize_window()    #最大化視窗
5 bf.get("http://www.baidu.com")  #開啟百度
6 bf.find_element_by_partial_link_text("").click()#超連結方式定位百度上方的地圖連結
7 time.sleep(5)
8 bf.quit()