Robot Framework File Uploading获取元素无法访问错误

时间:2019-03-07 07:34:33

标签: robotframework

我知道以前已经回答过。但是我找不到任何答案,如何获得弹出窗口的定位器。 从本地系统将文件上传到GUI时,仍然出现错误。

  1. 在我的GUI中,通过提供xpath来单击“上载”箭头按钮
  2. 现在将弹出“文件上传”窗口,我需要从桌面或任何本地路径在输入字段中输入文件名。 -*****我不确定如何为输入提供定位符*****
  3. 我使用“选择文件名:文件名:C:/ Users / xxxx / Desktop / Generic_1902_User_Input_Spreadsheet”在此处输入图片描述。xlsx

我正在通过键盘错误无法访问元素。 有人可以上传这个视频-观看机器人框架文件上传的视频教程。 (Robot Framework File Upload

即使我尝试使用AutoIT。我可以创建一个au3文件以及一个exe文件。但是我无法使用Python脚本在我的机器人框架中调用此au3 / exe文件。

有人可以指导吗?

1 个答案:

答案 0 :(得分:0)

请勿单击打开文件选择器窗口的按钮,而应通过检查页面找到<input>元素,并直接将其定位符与Choose File关键字一起使用。

例如在Stack Overflow上,如果要编辑问题并上传图像,则应使用<input type="text" class="s-input" id="image-upload-url-input-55038357">元素。在被测页面上搜索相似的元素。

<div class="grid--cell grid fl-grow1 ai-baseline sm:fd-column sm:ai-stretch d-none js-url-input-container">
  <label class="s-label mr8 sm:mr0 sm:mb4" for="image-upload-url-input-55038357">Paste image or link:</label>
  <div class="fl1 ps-relative">
    <input type="text" class="s-input" id="image-upload-url-input-55038357">
  </div>
  <button class="s-btn sm:as-start js-cancel-url">Cancel</button>
</div>

要给您示例代码,以下代码段将以任务用户的身份导航至该问题,并将上载Capture.PNG(不保存)。请注意上一个输入元素的定位符//*[contains(@id, 'image-upload-file-input')]

*** Settings ***
Library           SeleniumLibrary

*** Variables ***
${EDIT QUESTION ELEMENT}    improve this question
${UPLOAD IMAGE BUTTON}    //*[contains(@id, 'wmd-image-button')]

*** Test Cases ***
File Upload Test
    Open Browser    https://stackoverflow.com/questions/55038357/robot-framework-file-upload-getting-element-not-reachable-error    Chrome
    Maximize Browser Window
    Click Link       ${EDIT QUESTION ELEMENT}
    Click Element    ${UPLOAD IMAGE BUTTON}
    Choose File     //*[contains(@id, 'image-upload-file-input')]    D:\\Capture.PNG
    Click Button    Add picture