Node.js結合selenium做web自動化測試第四課

親愛的小伙伴們,Node.js結合selenium做web自動化測試第四課的內容整理來了,今天介紹的是元素定位的八種方法

首先為大家介紹的就是定位元素的寫法跷跪,這個大家應該并不陌生,上一節(jié)課的程序里有用到,不知道細心的同學有沒有發(fā)現(xiàn)這里有兩種寫法

兩種寫法效果一樣脖苏,至于你想御用哪一個,還是那句話,自己開心就好仓坞,我們的重點是,怎么來定位元素腰吟,下面无埃,有請八個佳麗出場。

官網(wǎng)上有他們的花名冊?

https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_By.html

為了便于讓大家看懂毛雇,下面的介紹呢我改一下出場順序

1.By.id

一般情況下嫉称,Id都是唯一的,所以如果你在檢查元素的時候可以找到它的id值灵疮,那就甭猶豫了织阅,拿來用吧!怎么用呢震捣?沒圖你說個屁荔棉,嗯,舉個栗子:

我們先用一段程序在瀏覽器里面打開百度網(wǎng)址

這里我們點擊編輯器然后鼠標定位到輸入框蒿赢,可以看到藍色部分就是定位到的元素

框中有個顯眼的id="kw"是嗎润樱,嗯,要的就是kw羡棵,這就是我們要找的id屬性壹若,所以接下來這樣寫

如我們所愿,它定位到了輸入框皂冰,并且按照要求店展,在里面輸入了“123”

id屬性了解了之后,name和className的道理是一樣的

還是剛才那段藍色的框里的內容秃流,注意到id后面的name和class了嗎赂蕴,這兩個就是name屬性和className屬性

所以同樣的功能用這兩個寫起來是下面這樣:

2.By.name

3.?By.className

這里大家注意:class屬性要保證值是唯一的,檢查是不是唯一的方法很簡單舶胀,把屬性值copy下來概说,檢查頁面ctrl+f,下面會出現(xiàn)一個搜索框峻贮,搜索框里把值貼進去

這里會顯示值有多少個

就算這里查到的個數(shù)不是唯一的也不用擔心席怪,因為有些值可能是在ccs或者javascript里面,我們只要關心body里的值是不是唯一就可以了纤控,比如我們剛剛這個挂捻,雖然總數(shù)不只一個,但是body里面是唯一的船万,所以放心的用就好了

4.?By.xpath

這一個在上節(jié)課介紹過的刻撒,準確率較高的一種定位方式骨田,用起來很簡單,復制粘貼走一波就可以了,細節(jié)不演示了声怔,大家自己動手态贤,豐衣足食吧

5.?By.css

By.css呢,跟xpath用法一樣醋火,都是可以直接復制粘貼的悠汽,還是剛那個路徑,只不過要復制的地方稍稍往上一點

但是呢芥驳,css肯定不光這一個復制粘貼的辦法柿冲,送你套秘籍,點這里http://www.w3school.com.cn/cssref/css_selectors.asp

這個選擇器什么意思呢兆旬,舉兩個例子啊假抄,上面知道了id屬性和class屬性了吧,我們用css定位的時候填寫class屬性丽猬,只需要在值的簽名加一個. ?同樣宿饱,如果你用id屬性,那么就在值的前面加#

比如說脚祟,我們剛剛搜索框的Id屬性值是kw,那么這樣寫

或者這樣

試一下結果谬以,效果是一樣的吧,驚不驚喜愚铡,意不意外蛉签,下面的那些大家以后的實踐當中可以挨個玩玩

6.?By.linkText

這個方法胡陪,主要用來點擊頁面上會跳轉的鏈接沥寥,還是看百度首頁

右上角這一排,點擊任一一個都會跳轉到一個新頁面的鏈接柠座,用By.linkText就準沒錯了邑雅,不用找屬性,直接輸入字段名稱就可以妈经,但是記得它是頁面唯一一的字段才可以淮野,如果這個字段在頁面出現(xiàn)兩個或以上,那乖乖的用別的方法去吹泡,沒商量

下面點個“新聞”鏈接看看

7. By.partialLinkText

這個用法跟上面的一樣骤星,定位頁面的鏈接,區(qū)別在于爆哑,它支持模糊查詢洞难,也就是說,輸入要點擊文字的一部分就可以了揭朝,我們要搜索“新聞”队贱,在這里了色冀,主要輸入“新”或者“聞”都可以

效果一樣的,不騙你

8.?By.tagName

我們可以看到官網(wǎng)上在這種方法前面標注了deprecated柱嫌,沒錯锋恬,它是一種被打入冷宮的方法,已經(jīng)被棄用了编丘,為什么這樣對它呢与学?

原因這種方法呢要根據(jù)元素前面的標簽來定位比如說div標簽,a標簽巴拉巴拉的一對標簽嘉抓,可是這樣的標簽有太多癣防,找起來相當麻煩,所以呢掌眠,大家只要對它有個大致了解就好蕾盯,實際運用中不用此方法定位元素

定位元素的幾種方法上面介紹完了,下面說一下動態(tài)生成的元素怎么定位

何為動態(tài)生成的元素蓝丙,比如這樣级遭,我們在輸入框里輸入123,這個時候下面會帶出來好幾個可能我們要找的選項

如果此時我們想要選擇第二條“12306鐵路客戶服務中心”渺尘,你會發(fā)現(xiàn)當點擊選擇器的時候鼠標失去焦點挫鸽,下面的信息就全都消失不見了,扎心了鸥跟,老鐵丢郊。。医咨。

沒關系枫匾,只要思想不滑坡,辦法總比困難多

先記錄輸入框的Id屬性值

然后在console界面下找到輸入框拟淮,在里面輸入搜索內容干茉,這時就會自動輸入搜索內容帶出下面的結果選項

再切換到Element目錄下,就可以定位到了

元素定位說到這里很泊,第四課的另外一個內容角虫,是如何截屏,老套路委造,還是先看官方文檔怎么說https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/chrome_exports_Driver.html#takeScreenshot

調用的方法是takeScreenshot戳鹅,我們代碼實現(xiàn)一下

截屏數(shù)據(jù)存儲在變量Imagedata里面,打印出來
輸出結果里面的這一堆天書就是圖片的源代碼

怎么把這一堆天書存儲成可以看到的圖片呢昏兆,這里用這個方法fs ? ?https://nodejs.org/api/fs.html

首先我們要require進來這個方法

然后把圖片的源碼轉換成圖片格式枫虏,參考這個文檔

https://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver

照他說的,差不多就是這么寫了

writeFile后面的第一個代表存儲路徑,screen.png是我們給他定義的文件名模软,imagedata我們剛剛給截圖源文件的名字伟骨,base64是圖片的編碼格式,就是我們看不懂的天書

行不行燃异,拉出來遛遛唄

看携狭,多了一個.png

打開看一下,就是我們要的截圖

今天的課堂筆記到這里結束回俐,更多精彩內容逛腿,歡迎關注騰訊課堂

https://ke.qq.com/course/281565#tuin=173f40be,周一至周五晚上8:00仅颇,不見不散

測試工具CukeTest下載地址http://www.cuketest.com/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末单默,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子忘瓦,更是在濱河造成了極大的恐慌搁廓,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耕皮,死亡現(xiàn)場離奇詭異境蜕,居然都是意外死亡,警方通過查閱死者的電腦和手機凌停,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門粱年,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罚拟,你說我怎么就攤上這事台诗。” “怎么了赐俗?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵拉队,是天一觀的道長。 經(jīng)常有香客問我秃励,道長氏仗,這世上最難降的妖魔是什么吉捶? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任夺鲜,我火速辦了婚禮,結果婚禮上呐舔,老公的妹妹穿的比我還像新娘币励。我一直安慰自己,他們只是感情好珊拼,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布食呻。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仅胞。 梳的紋絲不亂的頭發(fā)上每辟,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音干旧,去河邊找鬼渠欺。 笑死,一個胖子當著我的面吹牛椎眯,可吹牛的內容都是我干的挠将。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼编整,長吁一口氣:“原來是場噩夢啊……” “哼舔稀!你這毒婦竟也來了?” 一聲冷哼從身側響起掌测,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤内贮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后汞斧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贺归,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年断箫,在試婚紗的時候發(fā)現(xiàn)自己被綠了拂酣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡仲义,死狀恐怖婶熬,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情埃撵,我是刑警寧澤赵颅,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站暂刘,受9級特大地震影響饺谬,放射性物質發(fā)生泄漏。R本人自食惡果不足惜谣拣,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一募寨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧森缠,春花似錦拔鹰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恰画。三九已至,卻和暖如春瓷马,著一層夾襖步出監(jiān)牢的瞬間拴还,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工欧聘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留自沧,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓树瞭,卻偏偏與公主長得像拇厢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晒喷,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容