【问题标题】:Robot Framework File Upload机器人框架文件上传
【发布时间】:2013-02-13 07:44:58
【问题描述】:

我必须编写一个必须上传文件的测试。 这可以使用 Robot Framework 吗?

谢谢

【问题讨论】:

    标签: file-upload robotframework


    【解决方案1】:

    SeleniumLibrary

    中有一个Choose File关键字

    【讨论】:

      【解决方案2】:

      选择文件关键字可以在文件上传文本字段中输入文件路径和名称。但是,在单击文件然后单击“打开”按钮的窗口中,关键字无法与选择文件进行交互。 要在打开文件窗口中单击文件并单击打开按钮,您可以使用 Robot Framework AutoItLibrary 关键字。 Check out the video tutorial for Robot Framework File Upload

      【讨论】:

        【解决方案3】:

        ChooseFile 将在给定的定位器中粘贴文件路径。这与仅输入文本类似。 您可以将 AutoIT 用于此记录 autoit 脚本并将其转换为 au3 文件并按如下方式运行 运行并返回 RC auitscriptforfileupload.au3

        【讨论】:

        • 问题是关于robotframework,回复是要求用户使用autoit?
        • 嗨 Rao,对于文件上传,您在机器人框架中只能选择使用 autoit
        【解决方案4】:

        这个问题以及其他涉及在 DOM 外部单击的问题都可以通过几种方式解决。选择文件也许可以使用,但我从未尝试过,而且我见过其他几个技巧来做同样的事情。

        第一个是使用 AutoIT 在 DOM 外部单击,就像用户在进行手动测试时所做的那样。我自己从未使用过它,但我已经看到它在 Robot Framework 中用于最小化窗口、打开 MS Paint 并画一条线,所以我很确定它也可以用于此。

        第二种方法是通过创建一个机器人框架关键字来点击 DOM 外部的截图。这就是我一直用来点击我无法通过 Robot Framework 正常访问的按钮的方法。使用截图工具来截图你想要点击的位置,中间的位置。它有点挑剔,但易于使用,所以我喜欢它。这是它的 Python 2.7.13 代码。

        def click_by_image(self, image_name):
            if self.selenium_lib is None:
                self.selenium_lib = BuiltIn().get_library_instance('ExtendedSelenium2Library')
            pag.click(pag.locateCenterOnScreen(str(image_name)))
        

        假设您熟悉创建新的 Robot Framework 关键字(有关详细信息,请参阅其他问题/答案,这超出了本问题的范围),实现这一点应该非常简单。

        编辑:我最近切换到选择文件,因为可以假设 Windows(或您正在运行的操作系统)GUI 正在工作,并且可以手动执行 Robot Framework 正在自动化的操作。有时单击几下也会更快,更可靠,并且可以在您关注另一个窗口时在后台运行。

        【讨论】:

          【解决方案5】:

          选择文件效果最好

          例如:从执行目录导入文件以获取有关文件路径检查操作系统库的更多详细信息

          Click Element    ${IMPORT}
          Choose File      ${LOCATE_FILE}    ${CURDIR}${/}filename.txt
          Click Element    ${VALIDATE_IMPORT}
          

          【讨论】:

            【解决方案6】:

            我用了很多次 我刚刚在 Robot Framework 中编写了一个函数,它需要 2 个参数 1 个文件名 2 浏览位置

            File Upload for Creative
            [Arguments]         ${file}=
            ...                 ${browsrLocator}=
            ${NORMAL_PATH_UPLOAD_FILE_NAME}      Normalize Path       ${DataFiles}/${file}
            Choose File         ${browsrLocator}        ${NORMAL_PATH_UPLOAD_FILE_NAME}
            Sleep   3s
            

            就是这样..

            【讨论】:

              猜你喜欢
              • 2017-09-16
              • 2020-08-30
              • 2019-01-30
              • 2021-07-03
              • 2016-05-19
              • 2018-03-13
              • 1970-01-01
              • 2020-04-02
              • 2019-07-04
              相关资源
              最近更新 更多