我必须编写一个必须上传文件的测试。这可能使用机器人框架吗?
谢谢
SeleniumLibrary中有一个选择文件关键字
我用了很多次我只是在机器人框架中写了一个函数,它需要 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
而已 ..
选择文件关键字可以在文件上传文本字段中输入带有名称的文件路径。但是,在单击文件然后单击“打开”按钮的窗口中,关键字无法与选择文件进行交互。要在打开文件窗口中单击文件并单击打开按钮,您可以使用 Robot Framework AutoItLibrary 关键字。 查看 Robot Framework File Upload 的视频教程。
这以及其他涉及在 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 正在自动化的操作。有时单击几下也会更快,更可靠,并且可以在您关注另一个窗口时在后台运行。
ChooseFile 将在给定的定位器中粘贴文件路径。这就像仅输入文本。您可以将 AutoIT 用于此记录 autoit 脚本并将其转换为 au3 文件并按如下方式 运行 Run And Return RC auitscriptforfileupload.au3
选择文件效果最好
例如:从执行目录导入文件以获取有关文件路径检查操作系统库的更多详细信息
Click Element ${IMPORT}
Choose File ${LOCATE_FILE} ${CURDIR}${/}filename.txt
Click Element ${VALIDATE_IMPORT}