一篇文章搞定Selenium元素定位/封裝/數據驅動


小伙伴都知道,自動化最重的,又最“難”(因為實戰中會碰到定位的各種坑)那就是定位元素。如果不熟練掌握定位,那只怕你比功能測式的小伙伴下班還會要晚!扎心了吧!


 

Selenium常用定位方式

  我們在做WEB自動化時,最根本的就是操作頁面上的元素,首先我們要能找到這些元素,然后才能操作這些元素。工具或代碼無法像我們測試人員一樣用肉眼來分辨頁面上的元素。那么我們怎么來定位他們呢?

來坑了!經常有開發人員,沒有寫元素的id,或者name,你要打開發嗎?哈哈,請一定熟練掌握xpath定位或css定位!!!否則你自動化寸步難行!!

 


 

Selenium之iframe定位

  在 web 應用中經常會出現 iframe 嵌套的應用,假設網站是一棟房子,那么iframe則是房子中的某一個房間,如果你要從房間里拿到東西,那么必須要新進入房間,才能拿到相應的內容。 selenium提供了switch_to.frame()的方法來進入iframe這個房間 selenium提供switch_to_default_content()的方法來退出iframe這個房間 以163郵箱的網站為例,要求:輸入用戶名和密碼,點擊登錄 網址:https://mail.163.com/

 重點:在iframe操作完,一定要釋放該元素。(簡單理解就是說,我要從這個房間出去后才能去其它地方)


 

Selenium之列表定位

下拉列表常見的前端表現形式:Select+Option 和 ul+li

 

 

 

案例1:12306訂票,url:https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc

操作流程:打開網址--出發地輸入北京--》到達地輸入上海--》發車時間選擇12:00-18:00這個時間段--》點擊查詢

解題思路: 導包:from selenium.webdriver.support.ui import Select 定位Select元素 再通過調用Select的方法來進行定位元素

簡單演式:

源代碼:

 


 

定位非<select>標簽的下拉菜單中的選項,需要兩個步驟,先定位到下拉菜單,再對其中的選項進行定位。

案例2:禪道編寫用例,url:http://127.0.0.1/index.php

解題思路:

先定位到ul,並且將定位到的值賦給變量a a=driver.find_element_by_id("ul的id")

再用變量a去找到li a.find_element_by_id("li的id").click()

 


 

Selenium元素封裝+數據驅動

案例3:對於百度搜索,如何做元素的封裝

解題思路:

導包:

from selenium.webdriver.common.by import By

使用find_element()方法來定位元素

使用函數的方式來封裝

有沒有局限性?

案例4:對於百度搜索,元素封裝后如何做數據驅動

解題思路:

unittest:單元測試框架,繼承TestCase,重復使用,生成報告

ddt:數據驅動,封裝好后,只需填入數據即可完成測試任務


   如果對軟件測試、接口測試、自動化測試、性能測試、持結集成、面試經驗交流。感興趣可以893694563,群內會有不定期的發放免費的資料鏈接,這些資料都是從各個技術網站搜集、整理出來的,如果你有好的學習資料可以私聊發我,我會注明出處之后分享給大家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM