最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Selenium定位元素操作示例

 更新時間:2018年08月10日 14:20:56   作者:噴跑的豆子  
這篇文章主要介紹了Selenium定位元素操作,結(jié)合實例形式總結(jié)分析了Selenium通過ID、name、XPath、標(biāo)簽名稱、類名等進行元素定位操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Selenium定位元素操作。分享給大家供大家參考,具體如下:

Selenium是一個用于Web應(yīng)用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應(yīng)用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。測試系統(tǒng)功能——創(chuàng)建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。

在前面一篇《Selenium基本用法》中簡單記錄了Selenium的使用,接下來記錄一下元素的定位,Selenium提供了多種策略來定位頁面中的元素,Selenium提供了以下方法來定位頁面中元素,你可以根據(jù)自己的喜好來進行選擇:

  • find_element_by_id:通過ID進行匹配查找,只返回匹配到的一個元素
  • find_element_by_name:通過name進行匹配查找,只返回匹配到的一個元素
  • find_element_by_xpath:通過xpath進行匹配查找,只返回匹配到的一個元素
  • find_element_by_link_text:通過鏈接內(nèi)容進行匹配查找,只返回匹配到的一個元素
  • find_element_by_partical_link_text:通過部分鏈接內(nèi)容進行匹配查找,只返回匹配到的一個元素
  • find_element_by_tag_name:通過標(biāo)簽名稱進行匹配查找,只返回匹配到的一個元素
  • find_element_by_class_name:通過class名稱進行匹配查找,只返回匹配到的一個元素
  • find_element_by_css_selector:通過CSS選擇器進行匹配查找,只返回匹配到的一個元素

值得注意的是,上面方法只會匹配查找只會獲取第一個元素。除了上面這些查找單個元素的方法之外,Selenium還定義查找多個元素的方法:

  • find_elements_by_name:通過name進行匹配查找,返回所有匹配到的元素列表
  • find_elements_by_xpath:通過xpath進行匹配查找,返回所有匹配到的元素列表
  • find_elements_by_link_text:通過鏈接內(nèi)容進行匹配查找,返回所有匹配到的元素列表
  • find_elements_by_partical_link_text:通過部分鏈接內(nèi)容進行匹配查找,返回所有匹配到的元素列表
  • find_elements_by_tag_name:通過標(biāo)簽名稱進行匹配查找,返回所有匹配到的元素列表
  • find_elements_by_class_name:通過class名稱進行匹配查找,返回所有匹配到的元素列表
  • find_elements_by_css_selector:通過CSS選擇器進行匹配查找,返回所有匹配到的元素列表

除了上面給出的公有方法之外,Selenium還提供了兩種私有方法可能對頁面對象中的定位器有用,這兩個私有方法是:find_elementfind_elements

from selenium.webdriver.common.by import By
element = driver.find_element(By.XPATH,'//*[@id="su"]')
elements = driver.find_elements(By.XPATH,'//button')

下面是By可用的屬性:

ID = 'id'
NAME = 'name'
XPATH = 'xpath'
LINK_TEXT = '鏈接內(nèi)容'
PARTIAL_LINK_TEXT = '部分鏈接內(nèi)容'
TAG_NAME = '標(biāo)簽名稱'
CLASS_NAME = '類名'
CSS_SELECTOR = 'CSS選擇器'

通過ID定位

當(dāng)你知道元素的ID屬性時,你可以使用它,使用此策略,將返回ID屬性值與該匹配的第一個元素。如果沒有元素匹配到此ID屬性,將會引發(fā)NoSuchElementException錯誤,舉個栗子,有這樣一個數(shù)據(jù)源:

<input id="login_id" type="text"/>

我們知道了這個元素的ID,我們可以這樣進行定位:

element = driver.find_element_by_id('login_id')

通過name定位

當(dāng)你知道元素的name屬性時,你可以使用它,使用此策略,將返回name屬性值與該匹配的第一個元素。如果沒有元素匹配到此name屬性,將會引發(fā)NoSuchElementException錯誤,舉個栗子,有這樣一個數(shù)據(jù)源:

<input name="login" type="text"/>

我們知道了這個元素的name,我們可以這樣進行定位:

element = driver.find_element_by_name('login')

通過XPath定位

XPath是用于在XML文檔中查找節(jié)點的語言,由于XML可以是HTML的實現(xiàn),因此Selenium用戶可以利用這種強大的語言來定位其Web應(yīng)用程序中的元素。XPath擴展了通過id和name屬性定位的簡單方法,并打開了各種新的可能性,例如在頁面中查找第三個復(fù)選框。舉個栗子,有這樣一個數(shù)據(jù)源:

<html>
 <body>
 <form id="loginForm">
  <input name="username" type="text" />
  <input name="password" type="password" />
  <input name="continue" type="submit" value="Login" />
  <input name="continue" type="button" value="Clear" />
 </form>
</body>
<html>

我們可以這樣進行定位:

user_element = driver.find_element_by_xpath("/html/body/form/input[@name='username']")

或者

user_element = driver.find_element_by_xpath("/html/body/form/input")

或者

user_element = driver.find_element_by_xpath('//input[1]')

或者

user_element = driver.find_element_by_xpath("http://input[@name='username'][@type='text']")

通過鏈接內(nèi)容定位

當(dāng)你知道鏈接元素的內(nèi)容時,你可以使用它,使用此策略,將返回鏈接內(nèi)容與該匹配到的第一個元素。如果沒有元素匹配到此鏈接內(nèi)容,將會引發(fā)NoSuchElementException錯誤,舉個栗子,有這樣一個數(shù)據(jù)源:

<html>
 <body>
 <p>Are you sure you want to do this?</p>
 <a href="continue.html" rel="external nofollow" rel="external nofollow" >Continue</a>
 <a href="cancel.html" rel="external nofollow" >Cancel</a>
</body>
<html>

其中<a href="continue.html" rel="external nofollow" rel="external nofollow" >Continue</a>元素可以這樣定位:

element = driver.find_element_by_link_text('Continue')

或者

element = driver.find_element_by_partical_link_text('Con')

通過標(biāo)簽名稱定位

當(dāng)你知道標(biāo)簽的名稱時,你可以使用它,使用此策略,將返回標(biāo)簽名稱與該匹配到的第一個元素。如果沒有元素匹配到此標(biāo)簽名稱時,將會引發(fā)NoSuchElementException錯誤,舉個栗子,有這樣一個數(shù)據(jù)源:

<html>
 <body>
 <h1>Welcome</h1>
 <p>Site content goes here.</p>
</body>
<html>

我們可以這樣對<p>元素進行定位:

element = driver.find_element_by_tag_name("p")

通過類名進行定位

當(dāng)你知道類名的時候,你可以使用它,使用此策略,將返回類名與該匹配到的第一個元素。如果沒有元素匹配到此類名稱時,將會引發(fā)NoSuchElementException錯誤,舉個栗子,有這樣一個數(shù)據(jù)源:

<html>
 <body>
 <p class="content">Site content goes here.</p>
</body>
<html>

我們可以這樣對<p>元素進行定位:

element = driver.find_element_by_class_name('content')

通過CSS選擇器進行定位

當(dāng)你想通過CSS選擇器語法找到一個元素時,你可以使用它,使用此策略,將返回匹配CSS選擇器的第一個元素。如果沒有元素匹配到此CSS選擇器時,將會引發(fā)NoSuchElementException錯誤,舉個栗子,有這樣一個數(shù)據(jù)源:

<html>
 <body>
 <p class="content">Site content goes here.</p>
</body>
<html>

我們可以這樣對<p>元素進行定位:

element = driver.find_element_by_css_selector('body p')

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python URL操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python機器學(xué)習(xí)之邏輯回歸

    Python機器學(xué)習(xí)之邏輯回歸

    這篇文章主要介紹了Python機器學(xué)習(xí)之邏輯回歸,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 使用python調(diào)用瀏覽器并打開一個網(wǎng)址的例子

    使用python調(diào)用瀏覽器并打開一個網(wǎng)址的例子

    這篇文章主要介紹了使用python調(diào)用瀏覽器并打開一個網(wǎng)址的例子,使用webbrowser模塊實現(xiàn),需要的朋友可以參考下
    2014-06-06
  • Python利用selenium建立代理ip池訪問網(wǎng)站的全過程

    Python利用selenium建立代理ip池訪問網(wǎng)站的全過程

    selenium控制瀏覽器也是可以使用代理ip的,下面這篇文章主要給大家介紹了關(guān)于Python利用selenium建立代理ip池訪問網(wǎng)站的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • python做接口測試的必要性

    python做接口測試的必要性

    在本篇文章里小編給大家整理的是關(guān)于python做接口測試的必要性以及相關(guān)知識點,有興趣的朋友們學(xué)習(xí)下。
    2019-11-11
  • 使用Python實現(xiàn)數(shù)據(jù)庫文檔生成工具

    使用Python實現(xiàn)數(shù)據(jù)庫文檔生成工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)數(shù)據(jù)庫文檔生成工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2024-04-04
  • python入門前的第一課 python怎樣入門

    python入門前的第一課 python怎樣入門

    人工智能這么火,0基礎(chǔ)能學(xué)python嗎?python該怎么選擇編輯器?怎么搭建python運行環(huán)境?python好學(xué)嗎,怎么學(xué)?這是所有python入門前同學(xué)都會提出的疑問,這篇文章和大家一起學(xué)習(xí)python,感興趣的小伙伴們可以加入
    2018-03-03
  • python實現(xiàn)微信小程序的多種支付方式

    python實現(xiàn)微信小程序的多種支付方式

    這篇文章主要為大家介紹了python實現(xiàn)微信小程序的多種支付方式的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • python仿抖音表白神器

    python仿抖音表白神器

    這篇文章主要教大家制作python抖音表白神器,仿制抖音表白小軟件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • PyTorch 中的 torch.utils.data 解析(推薦)

    PyTorch 中的 torch.utils.data 解析(推薦)

    這篇文章主要介紹了PyTorch?torch.utils.data.Dataset概述案例詳解,主要介紹對?torch.utils.data.Dataset?的理解,需要的朋友可以參考下
    2023-02-02
  • Python 面向?qū)ο蟛糠种R點小結(jié)

    Python 面向?qū)ο蟛糠种R點小結(jié)

    這篇文章主要介紹了Python 面向?qū)ο蟛糠种R點,總結(jié)分析了Python面向?qū)ο蟪绦蛟O(shè)計中類、對象、實例等相關(guān)概念、原理與使用技巧,需要的朋友可以參考下
    2020-03-03

最新評論

邢台县| 临安市| 安仁县| 陵水| 营山县| 车险| 壶关县| 理塘县| 江川县| 镇远县| 铜陵市| 清丰县| 南江县| 诸城市| 洮南市| 舟山市| 高唐县| 大化| 漯河市| 喀喇| 同心县| 婺源县| 铁岭市| 扶风县| 云和县| 湘阴县| 水富县| 左云县| 台江县| 独山县| 林周县| 桐乡市| 牡丹江市| 东兴市| 五原县| 兴化市| 仙游县| 昆山市| 蓬安县| 万载县| 新丰县|