天天看點

Robot Framework項目實戰筆記

1.僅有一個button的圖檔上傳,使用choosefile無法搞定的情況下,需要引入AutoItLibrary,具體實作如下栗子:

Robot Framework項目實戰筆記
Library           AutoItLibrary     
    click element    id=f_contractIdCardFrontPicker
    AutoIt    id=f_contractIdCardFrontPicker    C:\\Users\\XX\\Pictures\\2612129497.jpg    
    click element    id=f_contractIdCardBackPicker
    AutoIt    id=f_contractIdCardBackPicker    C:\\Users\\XX\\Pictures\\2612129497.jpg  

    #自己定義的關鍵字
    AutoIt
    [Arguments]    ${locator}    ${file}
    sleep    2
    win wait    打開
    win activate    打開
    control set text    \    \    Edit1    C:\\Users\\XX\\Pictures\\2612129497.jpg
    sleep    2
    control click    \    \    Button1
           

2.下拉菜單、下拉選項、月曆控件等處理,直接使用兩個click element;

click element    id= _easyui_textbox_input7    #打開月曆插件
    sleep    
    click element    XPATH=//a[@datebox-button-index="0"]    #選中當天月曆
           

3.JavaScript中元素無法定位,注意使用document.getElementById、document.getElementByTag、document.getElementByClassName,主要是這三個,使用好了基本無事。

Execute Javascript    document.getElementById('btnAddPayment').click()
           

還有這種情況,注意getElementsByClassName是數組形式:

execute Javascript    document.getElementsByClassName('l-btn l-btn-small l-btn-focus')[].childNodes[].click()
           

4.frame處理,使用 select frame/unselect frame,一般情況下都是成對出現的,隻有在frame中引入另一個frame的情況。

click element    XPATH=//span[text()='面試資訊錄入']
    select frame    Xpath=//*[@id="invitationDialog"]/iframe
    click element    id=_easyui_textbox_input7
    click element    XPATH=/html/body/div[2]/div/div[3]/table/tbody/tr/td[1]/a
    click element    XPATH=//span[text()='補錄商家']
    sleep    
    select frame    Xpath=//iframe[@id="assignWorkerDialog_assignWorkerIframe"]
    click element    XPATH=//*[@id="datagrid-row-r1-2-0"]
    click element    XPATH=//*[@id="save"]/span/span[]
    unselect frame
    select frame    Xpath=//*[@id="invitationDialog"]/iframe
    click element    XPATH=//*[@id="craete_invitation_saveBtn"]/span/span[]
    sleep    
    unselect frame
           

5.XPATH的幾種情況,需要熟練選擇使用;

click element    XPATH=//*[@name="query"]/span/span[]
click element    XPATH=//div[text()='請确認商家']
click element    XPATH=//span[contains(text(),"确認")]
click element    XPATH=/html/body/div[2]/div/div[3]/table/tbody/tr/td[1]/a
 input text    XPATH=//textarea[@id='_easyui_textbox_input14']    XXX
           

除了以上一些,其實還有很多,随自己習慣吧,應該不存在找不到元素的情況,隻有自己沒想到,不夠仔細的。

5.隐藏元素,隐藏屬性處理,很多使用都是伴随着JavaScript出現的,是以有JavaScript出沒,請小心仔細;

5.1隻有聚焦focus才會出現的屬性

No Focus時:

document.getElementsByClassName('l-btn l-btn-small')[].childNodes[].click()
           

Focus時:

execute Javascript    document.getElementsByClassName('l-btn l-btn-small l-btn-focus')[].childNodes[].click()
           

當然,你可以先使用focus處理下:

5.2 懸浮菜單,懸停元素處理

Robot Framework項目實戰筆記
Robot Framework項目實戰筆記

遇到這種情況,直接上JavaScript吧

Execute Javascript    document.getElementById('btnAddPayment').click()
    sleep    
    click element    XPATH=//*[@id="addPaymentMenu"]/div[]/div[]
           

繼續閱讀