當我們想讓 Selenium 自動地操作瀏覽器時,就必須告訴 Selenium 如何去定位某個元素或一組元素,每個元素都有著不同的標簽名和屬性值,Selenium 提供了以下8種定位元素的方式,每種方式對應了2個方法:
find_element_by_( ),是用來定位單個元素的,find_elements_by_( ),是用來定位多個元素的。
下面以百度首頁為例進行舉例說明:
1.通過 id 定位
find_element_by_id(id)
find_elements_by_id(id)
# _*_ coding:utf-8 _*_from selenium import webdriverdriver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位id為“kw”的元素input_text = driver.find_element_by_id("kw")input_text.send_keys("selenium")driver.quit()2.通過通過 name 定位
find_element_by_name(name)
find_elements_by_name(name)
# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位name為“wd”的元素input_text = driver.find_element_by_name("wd")input_text.send_keys("selenium")driver.quit()3.通過 class 定位
find_element_by_class_name(name)
find_elements_by_class_name(name)
# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位class名稱為“s_ipt”的元素input_text = driver.find_element_by_class_name("s_ipt")input_text.send_keys("selenium")driver.quit()4.通過 tag 定位
find_element_by_tag_name(name)
find_elements_by_tag_name(name)
# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位標簽為<input>的元素input_text = driver.find_elements_by_tag_name("input")print(len(input_text))driver.quit()5.通過 link 定位
find_element_by_link_text(link_text)
find_elements_by_link_text(link_text)
# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位鏈接文本完全匹配“我新聞”的元素news = driver.find_element_by_link_text("新聞")news.click()driver.quit()6.通過 partial link 定位
find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text)
# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位鏈接文本部分匹配“新”的元素news = driver.find_element_by_partial_link_text("新")news.click()driver.quit()            
新聞熱點
疑難解答