robotframework - 如何通过选择文件从 Mac 上传本地文件
问题描述
我想从我的 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')]
它正在工作并提示文件选择器窗口。
请参考页面截图。
解决方案
您指定的定位器Choose file
必须指向输入元素,而不是按钮。您不应单击该按钮,因为它将打开一个您的测试无法与之交互的对话框。
推荐阅读
- html - 有没有更简单的方法来检查表单中的密码和重复密码是否匹配?
- python - 如何修复“在此服务器上找不到请求的 URL”apache2 + django + ec2?
- javascript - 使用 ssl 运行 socket.io
- angular - 如何在 Ionic 4 Cordova 中修复“无法确定任务 ':app:preDebugBuild' 的依赖关系”
- android - android dex文件头中校验和和签名的目的是什么?
- python - 这个函数变量如何持续到 Python 中的下一次调用?
- php - Eclipse:PDO“找不到驱动程序”,即使它已安装并启用
- javascript - 如何修复作为对象对象进入html下拉列表的json代码
- javascript - 离子(角度)从数组中获取正确的数据
- python - Python 排序方法