前一篇文章介紹了如何通過元素的id值來定位web元素,本文介紹如何通過tag name來定位元素。個人認為,通過tag name來定位還是有很大缺陷,定位不夠精確。主要是tag name有很多重復的,造成了選擇tag name來定位頁面元素不准確,所以使用這個方法定位web元素的機會很少。
什么是tag name? 還是以百度首頁搜索輸入框,在火狐瀏覽器,右鍵,通過firepath,檢查元素,看下圖:
上面圖片中紅色圈選區域的標簽名稱都是tag name;實際上我們目標元素是輸入框,應該是input這個tag name,在圖中藍色高亮區域。但是如果只是通過input這個tag name來定位,發現上面有很多input的選項。所以我們擴大節點的參照選擇,我們選擇上面這個form來作為我們tag name。
看看如何寫定位form這個元素的腳本:
# coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")
try:
driver.find_element_by_tag_name("form")
print ('test pass: tag name found')
except Exception as e:
print ("Exception found", format(e))
driver.quit()
測試結果:
test pass: tag name found
總結:本文介紹了webdriver 八大定位元素方法中的
driver.find_element_by_tag_name("form") # form是tag name
從實際項目中自動化腳本開發來看,使用這個方法定位元素的機會比較少,知道有這么一種方法就好了。