Robot Framework项目实战笔记

来源:互联网 发布:linux ftp 目录 编辑:程序博客网 时间:2024/06/03 19:18

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]
原创粉丝点击