如何通过选择文件从Mac上传本地文件

时间:2019-05-13 06:51:57

标签: robotframework ride

我想从Mac上传本地文件。  这是Robot Framework的部分代码:

*** Settings ***
Library           Collections
Library           Selenium2Library

*** Variables ***
${file_path}    ${CURDIR}/file/IMG_0738.jpg  

*** Test Cases ***
Case
    Run Keywords    PreconditionLogin
    ...    AND    MyKeyword

*** Keywords ***
PreconditionLogin
    ${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    Call Method    ${chrome_options}    add_argument    --disable-extensions
    #Call Method    ${chrome_options}    add_argument    --headless
    Call Method    ${chrome_options}    add_argument    --disable-gpu
    Call Method    ${chrome_options}    add_argument    --no-sandbox
    Create Webdriver    Chrome    chrome_options=${chrome_options}
    Set Window Size    1024    768
    Go To    10.11.14.7
    Input Text    //*[@id='UserID']    aaa
    Input Text    //*[@id='Password']    123
    Press Key    //*[@id='Password']    \\13
MyKeyword
    Wait Until Element Is Visible   //*[@class='UploadInput-btn btn'][contains(text(),'UploadFile')]  1s
    Choose File  //*[@class='UploadInput-btn btn'][contains(text(),'UploadFile')]    ${file_path}

执行RF后,错误日志显示:

  

ElementNotInteractableException:消息:元素不可交互

我试图

click element    //*[@class='UploadInput-btn btn'][contains(text(),'UploadFile')]

它正在工作,并提示文件选择器窗口。

请参阅页面上的screenshot

1 个答案:

答案 0 :(得分:1)

您赋予Choose file的定位符必须指向输入元素,而不是按钮。您不应单击该按钮,因为它会打开一个您的测试无法与之交互的对话框。