1. 程式人生 > 實用技巧 >常用的selenium定位方法

常用的selenium定位方法

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

1.頁面上有多個相同屬性

42b343bf181511160f45d925f34dc7eeece.jpg

使用elements方法給元素加下標去定位,從0開始,在頁面上查詢你要定位的元素是第幾個

2.class有多個屬性且有空格的,使用css方法,#代表id, .代表class

d6853c59e64dd4bd02758634361cc08fd9a.jpg

self.driver.find_element_by_css_selector("div.ql-editor.ql-blank").send_keys("UITEST富文字線上報名")

3.時間控制元件,這個讓我弄了蠻久的,本來想寫個方法獲取今天和明天的時間然後填寫的,結果總是報各種錯,不堪回首不想提

這個方法有興趣的可以看看,裡面註釋掉的都是可以用的,只是我後面改了其它方法,想把這些轉換成str去呼叫,但還是報錯,所以放棄了

1b92c8862202669abdd648c74421ec01da9.jpg

最後我選擇了最簡單的辦法,直接輸入時間~~比如2019-05-05,缺點就是過了這個時間,我得再往後修改時間;看程式碼,結束時間那裡我註釋掉了,因為我試了很多次,只有開始時間能輸入,但是結束時間卻不行,多次除錯才發現,在開始時間輸入完成後,會自動跳到結束時間那裡---而我的步驟卻是先點選到結束時間輸入框,再輸入--這就造成了我的二次多餘的點選會讓時間控制元件關閉掉,當然沒有辦法輸入了,這個跟我的粗心有關,也希望大家遇到想不明白的問題時,先自己細心的梳理好操作步驟才能少走彎路

056cda68edd8b9a7e4521a74e6f70f518c0.jpg

另:我這個時間控制元件是input的型別,可以直接輸入的;如果遇到readonly的屬性,就要使用js指令碼的方式去掉這個屬性,然後再輸入了,可以參考這個帖子

https://www.cnblogs.com/tobecrazy/p/4206742.html

4.層級定位,比如我想點選刪除-確定的按鈕,但是直接以“確定”有時候定位不到或者說頁面上有太多個確定按鈕了,去數它是第幾個下標有時候並不準確,且數量有增減的時候下標也會變,會導致定位不到,比較理想的辦法就是層級定位

35d47d6ebdf91aa9722f6c49cc941a625c0.jpg

實現程式碼:首先確定下區域,大標籤是div,這個“確定”是在第三個div[3]下的第二個button[2]下的span,喏,路徑定好了,自然就能找到,管你是第幾個“確定”

ecaffeba17656114f84e853a2a34e772ff7.jpg

~~好像沒了,想到再補充

轉載於:https://my.oschina.net/EvanDev/blog/3022349