如果一個元素無法定位,腳本報錯了,你一般會考慮哪些方面的原因?
第一個,頁面加載過慢,你要去加等待時間,
然后頁面可能有frame框架頁,你需要先跳轉進去,
還有可能元素是動態元素,什么叫動態元素?有些元素它的id或者名字是動態的,我們可以通過父節點或兄弟節點去定位,定位方式要優化,
還有可能這些元素識別了,但是不能操作,需要會用js把前置的操作完成,
如果一個元素無法定位,你一般會考慮哪些方面的原因?
總結:
1.頁面加載元素過慢,加等待時間,
2.頁面有frame框架頁,需要先跳轉入frame框架再定位,
3.可能該元素是動態元素,定位方式要優化,可以使用部分元素定位或通過父節點或兄弟節點定位,
4.可能識別了元素,但是不能操作,比如元素不可用,不可寫等,需要使用js先把前置的操作完成,
相信前面三個,大家好理解一點,
第四個我們一起來看實際的案例
這其實也是一個面試題,面試官會問到你,你做自動化程序中遇到了什么問題,你是如何解決的?理解之后你就可以拿來和面試官說一說
我之前定位到一個元素,明明定位到了,但是卻不能操作,那么我是怎么處理的?
用js把前置的操作完成,
我打開了一個常用網站

像12306網站這個元素你就不可以操作,不可以輸入,不知道平時買票的時候有沒有注意過,可以現在試一下,

這個出發日期是操作不了的,你是洗掉不了的,你只能選擇,你輸入也輸入不了,(無法輸入,無法洗掉)
因為它有一個屬性,readonly屬性,只是可以讀的屬性,那么你把它干掉,然后你就可以去操作,可以去輸入,

這是有一種情況,有很多種情況都是這樣的,比如說:
這是我之前寫的一個專案,這都是我自己在本地框架代碼,

這箭頭里面其實是有一個元素的,這里面有一個按鈕,進入特殊通道,里面有“特殊”的服務,比如說是VIP的服務,里面是有一個按鈕的,但普通屬性是進不去的,沒有這個按鈕給你,沒有這個權限,
說到這個權限,我再啰嗦幾句,其實權限測驗挺重要,很多系統它有很多的權限測驗,很多系統它是分為很多的角色,那每個角色進去它的功能是不一樣的,像這個東西就特別適合做自動化,不然你自己要切換108種角色,打開一個網站,退出登錄退出登錄,去測驗,就很煩,這個也是我的經驗,
權限大家應該都測驗過吧,我之前是用自動化把權限這一塊測得完完整整,權限的整套功能自動化測驗完了,因為每次都要退出登錄退出登錄,非常麻煩,同樣的功能,只是不同的角色,不停的切換,其實這個大家以后也可以作為面試的一個點,你負責自動化,你負責自動化,你用自動化做了什么模塊,
很多朋友說我做的登錄,就沒了,我用自動化去做了登錄,你做登錄干什么啊,登錄這個東西已經很好了,不用你測驗了,很多朋友寫自動化腳本也是寫登錄,之后就就沒了,玩很多東西,搞完登錄后面就沒了,見到過很多這樣的情況,
所以權限模塊這一塊大家也可以去說一說,
扯遠了,回歸正題,

其實這里面有一個按鈕,你是看不到的,你如果去點,肯定就會報錯,因為這個元素都不可見,那么我們想辦法讓它顯示出來,這里面有個屬性叫hidden隱藏起來了,
通過一個簡單的屬性更改,它就展示出來了,

像這個屬性更改,我們做自動化程序中,不可能用手動操作去改這里的屬性,我們要通過JS去改
如果暫時看不懂的,沒有關系,你只需要理解這是通過一個JS腳本在改它,

腳本語言放到我們代碼里面去,執行一下就可以的,不管是改它的元素屬性讓它消失讓它出現,都是通過代碼自動實作,
還有一些情況,可以領取往期的視頻教程,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/288637.html
標籤:其他
