Robot Framework项目实战笔记

1.仅有一个button的图片上传,使用choosefile无法搞定的情况下,需要引入AutoItLibrary,具体实现如下栗子:
实际使用场景

    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_input70    #打开日历插件
    sleep    1
    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')[0].childNodes[0].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    5
    select frame    Xpath=//iframe[@id="assignWorkerDialog_assignWorkerIframe"]
    click element    XPATH=//*[@id="datagrid-row-r1-2-0"]
    click element    XPATH=//*[@id="save"]/span/span[1]
    unselect frame
    select frame    Xpath=//*[@id="invitationDialog"]/iframe
    click element    XPATH=//*[@id="craete_invitation_saveBtn"]/span/span[1]
    sleep    5
    unselect frame

5.XPATH的几种情况,需要熟练选择使用;

click element    XPATH=//*[@name="query"]/span/span[1]
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')[0].childNodes[0].click()

Focus时:

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

当然,你可以先使用focus处理下:

focus    id=tb  #locator

5.2 悬浮菜单,悬停元素处理
悬停菜单展开

悬停菜单未展开
遇到这种情况,直接上JavaScript吧

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

你可能感兴趣的:(robot-framework,RF,robot-framework,autoit,XPATH,JavaScript)