關于RF對于不在屏幕內(nèi)的頁面元素的處理辦法

1、碰到的問題:

最近在公司用Robot framework+Selenium2Library做項目,碰到部分頁面比較長,無法完全顯示在屏幕內(nèi),需要上下滾動滾動條才能看到下半部分的頁面元素。于是呼,問題就來了,當我操作未在屏幕內(nèi)的”繼續(xù)”按鈕(實際是一個超鏈接)時,案例失敗,提示:

ElementNotVisibleException: Message: u'Cannot click on element'。

HTML代碼:

繼續(xù)>繼續(xù)

2、解決過程:

a)??起初我以為RF不能識別不在屏幕內(nèi)的頁面元素,咨詢同事說可以處理,于是自己又開始研究,發(fā)現(xiàn)RF確實可以識別不在幕內(nèi)的頁面元素(比如輸入框)。通過先對輸入框進行賦值操作后,由于屏幕自己下拉繼續(xù)按鈕已經(jīng)顯示在屏幕內(nèi)了,于是問題看上去似乎解決了。

b)??然而,好景不長,另一個頁面出現(xiàn)了同樣的問題而且只有一個繼續(xù)按鈕不在屏幕內(nèi)(無法使用a中先操作其它元素的辦法解決),當案例執(zhí)行到這一步時我手工把頁面下拉使按鈕顯示出來,這時就不會有問題,于是我斷定點擊按鈕操作時屏幕沒有下拉,而RF操作時又必須要元素顯示在屏幕內(nèi)。隨即我又開始研究Selenium2Library庫,一個一個的看S2L庫的關鍵字,發(fā)現(xiàn)了Foucs關鍵字,于是抱著試一試的心理在點擊繼續(xù)按鈕前加上了這個Foucs關鍵字使焦點定位到按鈕上,當執(zhí)行到這一步時繼續(xù)按鈕出現(xiàn)在屏幕上,問題隨之徹底解決,很是開心?。。?!

3、總結(jié):

a)?? 首先,RF對于不在屏幕內(nèi)的頁面元素是可以識別的,RF定位到不在屏幕內(nèi)的對象會自行下移屏幕。但是對于點擊按鈕操作,RF沒有自行下移屏幕,所以無法進行操作,要想辦法使元素能在屏幕中顯示出來,focus關鍵字就很有用處了,因為它要定位焦點,而且會把屏幕下拉,這樣一來不在屏幕內(nèi)的元素就可以顯示進行操作了。

b)??Execute Javascript 關鍵字: 這是S2L庫中的一個關鍵字,可以用來執(zhí)行JS腳本,我覺得這也可以解決上述問題,有時間在研究研究。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,062評論 25 709
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,155評論 1 92
  • 許雯宿醉醒來,辛藍已經(jīng)走了,手機里收到了辛藍離別的訊息。 “雯,我走了。待在這里的每一分鐘,都覺得是折磨,也許一直...
    朵鈺閱讀 621評論 0 4
  • 宇皓 . 媽媽很高興你敢于主動挑戰(zhàn),人活著,要有所追求,有所夢想,敢于挑戰(zhàn) 要想贏,就一定不能怕輸, ...
    劉小歆閱讀 1,479評論 0 0
  • 滴滴..... 今天是林夢非第一天上班的日子。 “好吵呀,哎要遲到了”她趕快去洗手間,匆匆忙忙的從家里出來。 .....
    玫如雅Maria閱讀 1,115評論 1 9

友情鏈接更多精彩內(nèi)容