国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

自動化測試(二)selenium八大獲取元素方法及對象操作

這篇具有很好參考價值的文章主要介紹了自動化測試(二)selenium八大獲取元素方法及對象操作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

webdriver API

腳本實例

元素的定位

1. 通過id定位:

2. 通過name方式定位

3. 通過tag name(標(biāo)簽名)定位

4. 通過class name (類名)方式定位

5.?通過CSS 方式定位

6.?通過xpath方式定位

7.?link text定位

8. Partial link text 定位

操作測試對象

?鼠標(biāo)點擊與鍵盤輸入

submit 提交表單

text 獲取元素文本


上一篇主要講解了自動化測試的環(huán)境。最后用 IDE 生成了一個樣例。這節(jié)課將詳細(xì)的介紹 webdriver 的常用的API???♀?
selenium+python環(huán)境沒有配置好的可以先看我上兩篇配置環(huán)境噢。
selenium環(huán)境配置: 自動化測試(一)配置selenium環(huán)境(帶圖文,防止踩坑)-CSDN博客
python環(huán)境配置: 自動化測試(前奏)Python環(huán)境配置教程(帶圖文)-CSDN博客

webdriver API

腳本實例

一個簡單自動化腳本的構(gòu)成:
# coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver =webdriver.Chrome()
driver.get('http://www.baidu.com')
time.sleep(3)
driver.find_element(By.ID,'kw').send_keys('軟件測試')
time.sleep(3)
driver.find_element(By.ID,'su').click()
time.sleep(3)
driver.quit()
腳本解析:
coding = utf-8
防止亂碼,在編輯器里面可以不用加,因為編輯器默認(rèn)的就是 UTF-8 模式。
from selenium import webdriver
導(dǎo)入 webdriver 工具包,這樣就可以使用里面的 API
driver =webdriver.Chrome()
獲得被控制瀏覽器的驅(qū)動,這里是獲得Chrome 的,當(dāng)然還可以獲得其他 瀏覽器,不過要想使這一段代碼有效,必須安裝相應(yīng)的瀏覽器驅(qū)動。
driver.get('http://www.baidu.com')

打開百度這個網(wǎng)址。

driver.find_element(By.ID,'kw').send_keys('軟件測試')

根據(jù)id尋找kw這個元素,在百度里面,這個kw的元素是搜索框,然后send_keys是輸入指令,輸入“軟件測試”

driver.find_element(By.ID,'su').click()

這一段是根據(jù)id找到su這個按鈕,click代表點擊

driver.quit()

關(guān)閉瀏覽器

總結(jié)上面代碼的邏輯是,在百度中搜索“軟件測試”,并點擊搜索按鈕

driver.close()

?上面一行代碼也能夠關(guān)閉窗口,和quit的區(qū)別是:

close 方法關(guān)閉當(dāng)前的瀏覽器窗口, quit 方法不僅關(guān)閉窗口,還會徹底的退出 webdriver ,釋放與 driverserver之間的連接。所以簡單來說 quit 是更加徹底的 close quit 會更好的釋放資源。

元素的定位

對象的定位應(yīng)該是自動化測試的核心,要想操作一個對象,首先應(yīng)該識別這個對象。一個對象就是一個人一樣,他會有各種的特征(屬性),如比我們可以通過一個人的身份證號,姓名,或者他住在哪個街道、樓層、門牌找到這個人。
那么一個對象也有類似的屬性,我們可以通過這些屬性找到這對象。
注意:不管用那種方式,必須保證頁面上該屬性的唯一性
webdriver 提供了一系列的對象定位方法,常用的有以下幾種:
id
name
class name
link text
partial link text
tag name
xpath
css selector
我們可以看到,一個百度的輸入框,可以用這么多種方式去定位。
<input type="text" class="s_ipt" name="wd" id="kw" 
maxlength="100" autocomplete="off">

1. 通過id定位:

????????id是頁面元素的屬性,我們最常用元素定位方式,但是不是所有的元素都有 id 的。如果一個元素有 id 屬 性,那么一般在整個頁面是唯一的。所以我們一般可以用id 來唯一的定位到這個元素。
通過前端工具,例如 Chrome 瀏覽器的 F12 ,找到了百度輸入框的屬性信息,如下:
<input type="text" class="s_ipt" name="wd" id="kw" 
maxlength="100" autocomplete="off">
屬性 id=”kw” ,通過下面這行代碼就能定位到輸入框。
driver.find_element(By.ID,'kw').send_keys('軟件測試')

2. 通過name方式定位

如果這個元素有 name ,并且元素的 name 命名在整個頁面是唯一的,那么我們可以用 name 來定位這個元素。
用上面百度輸入框的例子,其中元素的屬性 name=”wd”
通過driver.find_element(By.NAME,'wd')函數(shù)同樣也可以定位到百度輸入框
driver.find_element(By.NAME,'wd').send_keys('軟件測試')

3. 通過tag name(標(biāo)簽名)定位

從上面的百度輸入框的屬性信息中,我們看到,不單單只有 id name 兩個屬性, 比如 class tag

name(標(biāo)簽名) input 就是一個標(biāo)簽的名字,而class="s_ipt"是類名。

在這里要注意的是,不是所有的元素用 tag name或者 class name來定位元素,首先要保證該元素的這兩種屬性在頁面上是唯一的,才能夠精準(zhǔn)定位。

driver.find_element(By.TAG_NAME,'input').send_keys('軟件測試')

注意:上面這個可能執(zhí)行不成功,因為標(biāo)簽名可能不唯一???♀?

4. 通過class name (類名)方式定位

driver.find_element(By.CLASS_NAME,'s_ipt').send_keys('軟件測試')

5.?通過CSS 方式定位

CSS(Cascading Style Sheets) 是一種語言,它被用來描述 HTML XML 文檔的表現(xiàn)。
CSS 使用選擇器來為頁面元素綁定屬性。這些選擇器可以被 selenium 用作另外的定位策略。

CSS 的比較靈活可以選擇控件的任意屬性,上面的例子中:driver.find_element(By.CSS_SELECTOR,'#kw')選擇取百度輸入框的id 屬性來定義

CSS 的獲取可以用 chrome F12 開發(fā)者模式中 Element- 右鍵 -copy-copy selector 來獲取
driver.find_element(By.CSS_SELECTOR,'#kw').send_keys('軟件測試')

6.?通過xpath方式定位

什么是XPathhttp://www.w3.org/TR/xpath/

XPath 基礎(chǔ)教程: http://www.w3schools.com/xpath/default.asp
XPath 是一種在 XML 文檔中定位元素的語言。因為 HTML 可以看做 XML 的一種實現(xiàn),所以 selenium 用 戶可是使用這種強大語言在web 應(yīng)用中定位元素。
XPath 擴展了上面 id name 定位方式,提供了很多種可能性。
XPATH 的獲取可以用 chrome F12 開發(fā)者模式中 Element- 右鍵 -copy-copy xpath 來獲取
driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('軟件測試')

7.?link text定位

有時候不是一個輸入框也不是一個按鈕,而是一個文字鏈接,我們可以通過鏈接內(nèi)容,也就是 link text 來定位。
需要注意的是鏈接內(nèi)容必須這個頁面唯一,否則會報錯。
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.find_element(By.LINK_TEXT,"hao123").click()
browser.quit()

8. Partial link text 定位

通過部分鏈接定位,這個有時候也會用到,拿上面的例子,我可以只用鏈接的一部分文字進行匹配:
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.find_element(By.PARTIAL_LINK_TEXT,"hao123").click()
browser.quit()

操作測試對象

前面講到了不少知識都是定位元素,定位只是第一步,定位之后需要對這個元素進行操作。是鼠標(biāo)點擊還是鍵盤輸入,或者清除元素的內(nèi)容,或者提交表單等。這個取決于定位元素需要進行的下一步操作。
webdriver 中比較常用的操作對象的方法有下面幾個:
1. click 點擊對象
2. send_keys 在對象上模擬按鍵輸入
3. clear 清除對象輸入的文本內(nèi)容
4. submit 提交
5. text 用于獲取元素的文本信息

?鼠標(biāo)點擊與鍵盤輸入

#coding=utf-8
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(2)
driver.find_element(By.ID,"kw").send_keys("test")
time.sleep(2)
driver.find_element(By.ID,"kw").clear()
driver.find_element(By.ID,"kw").send_keys("selenium")
time.sleep(2)
#通過submit() 來操作
driver.find_element(By.ID,"su").submit()
time.sleep(3)
driver.quit()
click() 用于點擊一個按鈕。
clear() 用于清除輸入框的內(nèi)容,比如百度輸入框里默認(rèn)有個 請輸入關(guān)鍵字 的信息,再比如我們的登錄框一般默認(rèn)會有“ 賬號 ”“ 密碼 這樣的默認(rèn)信息。 clear 可以幫助我們清除這些信息。

submit 提交表單

打開百度搜索頁面,按鈕 百度一下 元素的類型 type=“submit” ,所以把 百度一下 的操作從 click 換成 submit 可以達到相同的效果:
driver.find_element(By.ID,"su").submit()

text 獲取元素文本

text 用于獲取元素的文本信息
#coding=utf-8
from selenium import webdriver
import time

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(2)
#id = cp 元素的文本信息
data=driver.find_element(By.ID,"bottom_layer").text
print(data) #打印信息
time.sleep(3)
driver.quit()
輸出:
?2018 Baidu 使用百度前必讀 意見反饋 京ICP證030173號

本節(jié)就到這里啦,你們的支持就是我前進的動力,希望大家多多支持噢???♀????♂????♀????♂???文章來源地址http://www.zghlxwxcb.cn/news/detail-771772.html

到了這里,關(guān)于自動化測試(二)selenium八大獲取元素方法及對象操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • web自動化測試?yán)碚撝畇elenium八大定位 -(2)

    web自動化測試?yán)碚撝畇elenium八大定位 -(2)

    概念:通過元素的id屬性來定位元素。 前置:所要定位的元素必須有id屬性 方法:driver.find_element_by_id(id屬性值) 概念:通過元素的name屬性來定位元素。 前置:所要定位的元素必須有name屬性。 方法:driver.find_element_by_name(name屬性值) 特點:當(dāng)前頁面可以重復(fù) 由于name屬性值可以

    2024年02月09日
    瀏覽(30)
  • 【selenium自動化測試】如何定位頁面元素,及對頁面元素的操作方法

    【selenium自動化測試】如何定位頁面元素,及對頁面元素的操作方法

    selenium元素定位 ?selenium定位元素的方式有8種。 fild_element(by,value):by表示使用的定位方式,定位方式可以參見By類。value表示值,例如:根據(jù)id定位 By.ID,value=id屬性的值。該方法返回元素對象,返回值如下: 這個返回結(jié)果說明:返回值為WebElement類的對象,元素在使用方法時

    2024年02月10日
    瀏覽(28)
  • 自動化測試學(xué)習(xí)(六)-selenium定位元素之CSS選擇器詳細(xì)用法

    自動化測試學(xué)習(xí)(六)-selenium定位元素之CSS選擇器詳細(xì)用法

    目錄 1.通過class屬性定位 2.通過id屬性定位 3.通過標(biāo)簽名定位 4.其他方法定位 ? ?CSS是一種語言,它可以比較靈活的選擇控件的任意屬性,一般情況下比Xpath快,下面我們詳細(xì)介紹CSS的用法。CSS常見語法如下表所示:? 選擇器 示例 描述 .class .s_ipt 選擇class=\\\"s_ipt\\\"的所有元素 #i

    2024年01月17日
    瀏覽(23)
  • Selenium元素定位全攻略,讓你輕松玩轉(zhuǎn)自動化測試!

    Selenium元素定位全攻略,讓你輕松玩轉(zhuǎn)自動化測試!

    一、什么是元素定位 元素定位就是查找HTML元素的過程,操作頁面元素之前,首先要對元素進行定位,所以定位是自動化腳本編寫的開始。 通常使用find_element或find_elements方法來定位元素(find_element?使用給定的方法定位和查找一個元素;find_elements?使用給定的方法定位和查找所

    2024年02月04日
    瀏覽(29)
  • python+selenium的web自動化測試之8種元素定位方式詳解

    python+selenium的web自動化測試之8種元素定位方式詳解

    目錄 前言 單一屬性定位 通過元素的id 通過元素的name 通過元素的class 通過元素的標(biāo)簽名 通過元素的超鏈接文本 通過元素的部分超鏈接文本 XPTH定位 CSS定位 輔助定位工具 ? 我們在做WEB自動化時,最根本的就是操作頁面上的各種元素,而操作的基礎(chǔ)便是元素的定位,只有準(zhǔn)確

    2023年04月16日
    瀏覽(100)
  • 基于Java+Selenium的WebUI自動化測試框架(一)---頁面元素定位器

    基于Java+Selenium的WebUI自動化測試框架(一)---頁面元素定位器

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時200+小時精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! 對于自動化測試,尤其是UI的自動化測試。是很多做黑盒功能測試的同

    2024年03月17日
    瀏覽(58)
  • Web自動化測試-如何進行Selenium頁面數(shù)據(jù)及元素交互?教你一步不漏。

    Web自動化測試-如何進行Selenium頁面數(shù)據(jù)及元素交互?教你一步不漏。

    ? 目錄 前言: 一、Selenium簡介 二、安裝Selenium 1.Windows用戶安裝Selenium 2.安裝Chrome瀏覽器驅(qū)動 三、使用Selenium進行頁面數(shù)據(jù)及元素交互 1.啟動瀏覽器

    2024年02月07日
    瀏覽(24)
  • 【selenium】自動化測試中,元素?zé)o法點擊定位等問題的解決:js的使用方法

    【selenium】自動化測試中,元素?zé)o法點擊定位等問題的解決:js的使用方法

    在自動化測試中經(jīng)常會遇到使用selenium方法定位元素點擊操作失敗的情況,例如,我們想實現(xiàn)在瀏覽器輸入http://www.baidu.com,進入百度首頁后,鼠標(biāo)懸停在“更多產(chǎn)品”上,點擊“全部產(chǎn)品” 若不使用js的話,代碼應(yīng)該如下圖所示: 我們執(zhí)行代碼后,發(fā)現(xiàn)會報錯 我們該如何解

    2024年02月08日
    瀏覽(24)
  • 『App自動化測試之Appium應(yīng)用篇』| 繼承于selenium常用的元素定位方法有哪些?如何使用?

    『App自動化測試之Appium應(yīng)用篇』| 繼承于selenium常用的元素定位方法有哪些?如何使用?

    在了解元素等位前,我們先了解下 app 的一些類型,只有了解這些 app 的類型才能針對性的選擇元素定位方法; 因為不同類型的app的定位方式可能存在差異性; 我們了解到 APP 可以分為原生 APP 、 Web APP 、混合 APP 。 而原生 APP 是基于 Android 或 iOS 平臺官方的語言、類庫、工具

    2024年02月03日
    瀏覽(23)
  • 〖Python WEB 自動化測試實戰(zhàn)篇⑦〗- 實戰(zhàn) - selenium的基本元素操作與鍵盤鼠標(biāo)模擬事件操作

    訂閱 Python全棧白寶書-零基礎(chǔ)入門篇 可報銷! 白嫖入口-請點擊我。 推薦他人訂閱,可獲取扣除平臺費用后的35%收益,文末名片加V! 說明:該文屬于 Python全棧白寶書專欄, 免費階段訂閱數(shù)量4300+ , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:加入社區(qū)的小伙

    2023年04月08日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包