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")