常用的selenium定位方法
1.頁面上有多個相同屬性
使用elements方法給元素加下標去定位,從0開始,在頁面上查詢你要定位的元素是第幾個
2.class有多個屬性且有空格的,使用css方法,#代表id, .代表class
self.driver.find_element_by_css_selector("div.ql-editor.ql-blank").send_keys("UITEST富文字線上報名")
3.時間控制元件,這個讓我弄了蠻久的,本來想寫個方法獲取今天和明天的時間然後填寫的,結果總是報各種錯,不堪回首不想提
這個方法有興趣的可以看看,裡面註釋掉的都是可以用的,只是我後面改了其它方法,想把這些轉換成str去呼叫,但還是報錯,所以放棄了
最後我選擇了最簡單的辦法,直接輸入時間~~比如2019-05-05,缺點就是過了這個時間,我得再往後修改時間;看程式碼,結束時間那裡我註釋掉了,因為我試了很多次,只有開始時間能輸入,但是結束時間卻不行,多次除錯才發現,在開始時間輸入完成後,會自動跳到結束時間那裡---而我的步驟卻是先點選到結束時間輸入框,再輸入--這就造成了我的二次多餘的點選會讓時間控制元件關閉掉,當然沒有辦法輸入了,這個跟我的粗心有關,也希望大家遇到想不明白的問題時,先自己細心的梳理好操作步驟才能少走彎路
另:我這個時間控制元件是input的型別,可以直接輸入的;如果遇到readonly的屬性,就要使用js指令碼的方式去掉這個屬性,然後再輸入了,可以參考這個帖子
https://www.cnblogs.com/tobecrazy/p/4206742.html
4.層級定位,比如我想點選刪除-確定的按鈕,但是直接以“確定”有時候定位不到或者說頁面上有太多個確定按鈕了,去數它是第幾個下標有時候並不準確,且數量有增減的時候下標也會變,會導致定位不到,比較理想的辦法就是層級定位
實現程式碼:首先確定下區域,大標籤是div,這個“確定”是在第三個div[3]下的第二個button[2]下的span,喏,路徑定好了,自然就能找到,管你是第幾個“確定”
~~好像沒了,想到再補充
轉載於:https://my.oschina.net/EvanDev/blog/3022349