一、通过id查找
例:<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
element = driver.find_element_by_id("kw")
二、通过name查找
例:<input name="cheese" type="text"/>
cheese = driver.find_element_by_name("cheese")
三、通过classname查找
例:<div class="cheese"><span>Cheddar</span></div>
cheeses = driver.find_elements_by_class_name("cheese")
四、通过标签名查找
例:<iframe src="..."></iframe>
frame = driver.find_element_by_tag_name("iframe")
五、通过链接文本查找
例:<a href="http://www.baidu.com">转到百度</a>
ele = driver.find_element_by_link_text("转到百度")
注:有的时候,链接的文本很长,我们甚至只需要通过部分文本去找到该链接元素
只要这个链接文本是唯一的就行
六、通过CSS选择器查找
eles = driver.find_element_by_css_selector('#choose_car option')
基本用法:
方式 | 用法 | 举例 | 描述 |
根据class查找 | .class | .intro | 查找class=”intro”元素 |
根据id查找 | #id | #firstname | 查找id=”firstname”的元素 |
根据标签名查找 | tagname | div | 查找<div>元素 |
根据属性查找 | [attribute] | [target] | 查找具有”target”属性的元素 |
[attribute=value] | [target=_blank] | 查找包含target=”_blank”的元素 | |
[attribute^=value] | [href^=”https”] | 查找包含href属性,且该属性的值以”https”开头的元素 | |
[attribute$=value] | [href$=”.pdf”] | 查找包含href属性,且该属性的值以”.pdf”结尾的元素 | |
[attribute*=value] | [href*=”abc”] | 查找包含href属性,且该属性的值包含“abc”的元素 |
高级用法:
用法 | 举例 | 描述 |
后代元素选择器 | div p | 选择所有在<div>里面的<p> |
子元素选择器 | div>p | 选择所有<div>的<p>子元素 |
组选择器,同时选择多个元素 | <div>,<p> | 同时选择所有的<div>元素和<p>元素 |
相邻兄弟元素 | <div>+<p> | 选择所有<div>后面紧跟的<p>元素 |
兄弟元素 | <div>~<p> | 选择所有<div>元素后面的<P>元素(不一定要紧跟) |
:empty | p:empty | 选择没有子节点(包括文本)的<p>元素 |
:first-child | p:first-child | 选择所有是 父元素第一个元素的<p>元素 |
:first-of-type | p:first-of-type | 选择所有是 父元素第一个<p>元素的<p>元素 |
:last-child | p:last-child | 选择所有是其父元素最后一个元素的<p>元素 |
:last-of-type | p:last-of-type | 选择所有是其父元素最后一个<p>元素的<p>元素 |
:nth-child(n) | p:nth-child(2) | 选择所有是其父元素第二个元素的<p>元素 |
:nth-of-type(n) | p:nth-of-type(2) | 选择所有是其父元素的第二个<p>元素的<p>元素 |
:nth-last-child(n) | p:nth-last-child(2) | 选择所有是其父元素倒数第二个元素的<p>元素 |
:nth-last-of-type(n) | p:nth-last-of-type | 选择所有是其父元素倒数第二个<p>元素的<p>元素 |
:only-child | p:only-child | 选择所有是其父元素唯一一个子元素的<p>元素 |
:only-of-type | p:only-of-type | 选择所有是其父元素唯一一个<P>子元素的<p>元素 |
:not(selector) | :not(p) | 选择所有不是<p>元素的元素 |
七、通过Xpath查找
eles = food.find_elements_by_xpath('./p')