天天看點

uibot一些知識點

uibot為什麼可以操作界面元素?

Windows上的應用程式實際上由很多開發架構,包括SDK,MFC,WTL,wINfORM,WPF,QT,JAVA等等,還有IE和chrome中的web應用。這些應用程式其實都提供了界面元素的查找和操作接口。從技術上來說,Uibot無非就是調用這些接口而已。

什麼是有目标指令

在指令中指定一個界面元素。在運作的時候,會先查找這個界面元素是否存在,如果存在,則操作會針對這個界面元素進行。如果不存在,會反複查找,直到超過指定的時間,在使用uibot的時候,應該優先使用有目标的指令,因為有目标的指令會準确很多

跨域網頁

有時候在一個網頁中,會通過iframe嵌套的方式,在其中内嵌一個其他域名下的網頁。以qq為例子,目前網頁的域名為https://mail.qq.com/,内嵌的域名為https://xui.ptlogin2.qq.com/cgi-bin/xlogin,這種就是典型的跨域操作

uibot一些知識點

IE浏覽器不會對跨域做特殊處理,但是chrome,處于安全考慮,會禁止對iframe下的頁面進行操作,包括頁面元素的擷取等,即我們無法自動化操作

無目标指令
  • "模拟移動"指令,就是一個無目标指令,它是靠指定x,y坐标來确定位置的
  • 在window作業系統中,螢幕上的每一個點都有一個唯一的坐标,坐标由兩個整數組成,一個稱為x,一個稱為y。左上角為(0,0).
  • 視窗變化,原來的坐标就不能比對了,導緻操作和預期不一緻。
  • 圖像指令也是無目标指令,它會在螢幕上的指定區域,按照從左到右,從上到下的順序一次掃描,看這個圖像能否出現在指定區域當中

uibot提供的圖像指令下面有一條"點選圖像",它其實是“查找圖像”,“模拟移動”,“模拟點選”三條指令的組合

圖像指令,可以在無法擷取界面元素的情況下,在指定的區域内找到準确的操作位置,但是還不能像有目标的指令那樣,把界面元素中的内容讀出來,這時候就需要用到OCR識别技術了。

無目标指令的缺點,特别是圖像,OCR指令
  • 速度慢于有目标指令
  • 當圖像備遮擋時,會出現識别或查找錯誤
  • 需要依賴圖像檔案,一旦丢失圖像檔案,無法正常運作
  • OCR需要連接配接網際網路