1. 程式人生 > >selenium(python)下定位單個元素的常用方法

selenium(python)下定位單個元素的常用方法

htm time length weight rep 常用方法 子集 python border

定位單個元素的常用方法

以百度搜索框額面為例,藍色位置為定位到輸入框的屬性:

<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd">

技術分享

1、 id定位元素:find_element_by_id()

從定位到的屬性可以看到一個id屬性:id=”kw”,這裏可以通過這個id屬性定位到這個元素,定位到元素後,用 send_keys()方法來輸入數據

技術分享

2、 Name定位元素: find_element_by_name()

由於name不是唯一的,所有用name定位時容易出錯,必須保證name是唯一時,才能用name定位。

技術分享

3、 Class定位元素: find_ element_ by_class_name()

技術分享

4、 Tag定位元素: find_element_ by_tag_name()

由於一個頁面上有很多個tag(標簽),所有一般不用標簽來定位。例如搜索框的標簽屬性為“input”,所以我們用input來定位,舉例:

技術分享

5、 Link-定位元素: find_element_ by_link_text()

定位超鏈接時可以用link定位,,如百度首頁上的“新聞”,

查看頁面元素:

<a class="mnav" name="tj_trnews" href="http://news.baidu.com">新聞</a>

技術分享

從元素中可以查看到“href="http://news.baidu.com"”,說明是超鏈接,對於這種元素可以用一下方法

技術分享

6、 模糊匹配方式partial_link定位元素: find_element_by_partial_link_text()

超鏈接字符串比較長時,可以通過模糊匹配來定位元素,即截取部分字符串即可,例如:

技術分享

7、 Xpath定位元素: find_element_by_xpath()

如果一個元素既沒有id,也沒有nameclass等屬性,也不是超鏈接,且屬性可能還會有很多重復的元素的時候,可以用xpath定位來解決元素定位的問題。

Xpath是一種路徑語言,xpath語言另寫

技術分享

8、 Css定位元素: find_element_by_css_selector()

Css是另一種語法,即層疊樣式表(英文全稱:Cascading Style Sheets)是一種用來表現HTML標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等文件樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格式化。[1]

CSS 能夠對網頁中元素位置的排版進行像素級精確控制,支持幾乎所有的字體字號樣式,擁有對網頁對象和模型樣式編輯的能力。

Cssxpath更為簡潔,但是不好理解。新手建議先學如何通過工具來查看元素(通過Firepath可以查看到css定位的元素路徑)。

技術分享

selenium(python)下定位單個元素的常用方法