id |
惟一的 |
name |
元素的名稱 |
class name |
元素的類名 |
tag name |
標籤,不推薦,重複率過高 |
link text |
文本連接 |
partial link text |
對文本連接的一種補充 |
xpath |
相對/絕對路徑 |
css selector |
css定位 |
1. 經過id或name定位css
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
經過元素所帶的id和name屬性對元素定位:html
2. 經過class name或tag name定位web
經過元素中帶的class屬性定位瀏覽器
brower.find_element_by_class_name("iki-edit")
經過元素中的tag標籤訂位,這種定位方式極不靠譜,不推薦採起此種方式。less
brower.find_element_by_tag_name("div")
附加說明,若是class屬性含有空格,那麼取其中一個不重複的字段就能夠了,例子:spa
<a title="新建版本" tabindex="200" class="icon-only icon-add" data-remote="true" data-method="get" href="/projects/bk_community/versions/new">新建版本</a>
其中class的屬性值爲「icon-only icon-add」,取其中「icon-only」、「 icon-add」均可以,但最好是取其中惟一的。.net
brower.find_element_by_class_name("icon-add")
3. 經過link text和partial link text定位scala
<a href="http://news.baidu.com" target="_blank" class="mnav">新聞</a>
經過text link定位元素code
brower.find_element_by_link_text("新聞")
經過partial link text定位元素,當文字連接很長時,能夠經過此方式取其中一部分,只要取的部分能夠做爲惟一標識。orm
brower.find_element_by_partial_link_text("新")
4. xpath定位
此種定位方式需知曉xpath路徑,經過火狐瀏覽器就能夠知道,具體如何操做,可參考個人另外一篇博文
https://blog.csdn.net/qq_30990097/article/details/81325681
調用的方法爲:
brower.find_element_by_xpath("/html/body/div[1]/div/div[2]/ul/li[2]")
也能夠經過相對路徑自行填寫,例如:
//*[@id="su"]/form/span/input #經過上三級目錄的id屬性定位
固然也能夠經過某一級的name屬性定位。
5. CSS定位
css定位有點麻煩,方法不少。以百度輸入框html代碼爲例:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
定義瀏覽器
仍是以百度的輸入框html代碼爲示例:
定位代碼:
示例html代碼:
定位代碼:
option:nth-child(1)就是第幾個孩子的意思。