selenium中,8种 find element 方法

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")
原文地址:https://www.cnblogs.com/nnniki/p/9633437.html