1 -*- coding;utf-8 -*- 2 from selenium import webdriver 3 dr = webdriver.Chrome() 4 dr.get("https://www.baidu.com") 5 #有八種元素定位方法: 6 #id, name, class name, tag name, link text,部分link text, xpath, css選擇器
其中,find_elements_by_xxx 獲取的是一組元素。

前7種:
1 <span id="s_kw_wrap" class="s_ipt_wr"><span class="soutu-btn"></span> 2 <span class="soutu-btn"></span> 3 <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" value="123"> 4 <input></input> 5 </span> 6 <div id="u_sp" class="s-isindex-wrap s-sp-menu"> 7 <a href="http://news.baidu.com" target="_blank" class="mnav">超長的新聞名稱</a> 8 </div> 9 10 #id 11 dr.find_element_by_id("kw") 12 #name 13 dr.find_element_by_name("wd") 14 #class name 15 dr.find_element_by_class_name("s_ipt") 16 #tag name (標簽名稱) 17 dr.find_element_by_tag_name("input") #適用於只有一個input標簽 18 dr.find_elements_by_tag_name("input")[0].send_keys() #適用於多個input標簽 19 dr.find_element_by_tag_name("//span/input[0]") #通過父級元素 20 21 #text link, 部分text link 22 dr.find_elements_by_link_text("超長的新聞名稱") 23 dr.find_element_by_partial_link_text("新聞") 24 25 26 #xpath 27 dr.find_element_by_xpath("//input[@id='kw']") # 雙斜杠表示不確定 28 dr.find_element_by_xpath("/*[@id='kw']") # "*"表示所有元素 29 dr.find_element_by_xpath("//input[@name='wd']") 30 dr.find_element_by_xpath("//input[@class='s_ipt']") 31 dr.find_element_by_xpath("//input[@value='123']") 32 33 dr.find_element_by_xpath("//span/input[0]")#通過父級 34 dr.find_element_by_xpath("//span[@class='bg s_ipt_wr']/input[0]")#通過父級 35 36 也可用多種屬性集合 37 dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")
CSS選擇器:
1 <span id="s_kw_wrap" class="s_ipt_wr"><span class="soutu-btn"></span> 2 <span class="soutu-btn"></span> 3 <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" value="123"> 4 </span> 5 6 #class 用“.” 7 dr.find_element_by_css_selector(".s_ipt") 8 9 #id 用“#” 10 dr.find_element_by_css_selector("#kw") 11 12 #name 13 dr.find_element_by_css_selector("[name=wd]") 14 dr.find_element_by_css_selector("name='wd'") 15 dr.find_element_by_css_selector("//input[name='wd']") 16 17 #組合 18 dr.find_element_by_css_selector("span>input.s_ipt") #通過父級 19 dr.find_element_by_css_selector("span>input#kw") 20 dr.find_element_by_css_selector("span.s_ipt_wr>input")