- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Katalon 自定义“uploadFiles”关键字未加载文件。
Katalon 网站声明 Katalon 关键字“UploadFile”将仅在该标签存在于页面上时起作用(该标签不存在于我的测试页面上)。
建议的解决方法是使用以下自定义关键字;我已将其添加到我的项目中。当我运行脚本时,“uploadFile”关键字找到对象并打开“Windows 资源管理器”并就在那里。我认为问题在于“uploadFile”关键字从不将"file"传递给“Windows 资源管理器”进行加载。 Katalon 通过了这一步,因为它找到了对象。不确定为什么“关键字”不起作用...任何人都可以看到我哪里出错了吗?
Package=tools.uploadFiles
//Added for uploadFiles keyword
import java.awt.Robot
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection
import java.awt.event.KeyEvent
public class uploadFiles {
@Keyword
def uploadFile (TestObject to, String filePath) {
WebUI.click(to)
StringSelection ss = new StringSelection(filePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,
null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
//Added the following lines to the script's "import" header section
import com.kms.katalon.core.annotation.Keyword as Keyword
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
//Script test steps
WebUI.openBrowser('')
WebUI.navigateToUrl(GlobalVariable.testURL)
WebUI.maximizeWindow()
WebUI.delay(GlobalVariable.shortDelay)
Line that calls keyword: CustomKeywords.'tools.uploadFiles.uploadFile'(findTestObject('FILE_UPLOAD/Page_VirtualWealth/UploadFile0'),'C:\\Users\\eversda\\Downloads\\TestFiles\\BlankCheque.png')
Windows Explorer opens without file name
谢谢戴夫
最佳答案
“uploadFiles”现在在一些故障排除后工作
Keywords.tools.uploadFiles.groovy
//Added for use with "uploadFiles"
import java.awt.Robot
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection
import java.awt.event.KeyEvent
public class uploadFiles {
@Keyword
def uploadFile (TestObject to, String filePath) {
WebUI.click(to)
StringSelection ss = new StringSelection(filePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.delay(1000)
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.delay(1000)
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
注意:确保使用正确的对象定位器,在我的例子中,以下内容适用于“label_upload fa fa-upload fa-l”
//[@class = 'upload fa fa-upload fa-lg pull-right'][count(. |//[@for = 'chooseFile0']) = count(//*[@for = 'chooseFile0'])]
脚本头...
import com.kms.katalon.core.annotation.Keyword as Keyword
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
脚本片段...
WebUI.delay(GlobalVariable.shortDelay)WebUI.comment('不要在脚本运行时点击 Katalon。这样做会导致 uploadFiles 不工作。')
CustomKeywords.'tools.uploadFiles.uploadFile'(findTestObject('FILE_UPLOAD/Page_VirtualWealth/label_upload fa fa-upload fa-l'), 'C:\Users\jdoe\Downloads\TestFiles\TestLicense.jpg')Thread.sleep(2000)//等待“打开”对话
WebUI.switchToWindowIndex('0')
CustomKeywords.'tools.uploadFiles.uploadFile'(findTestObject('FILE_UPLOAD/Page_VirtualWealth/label_upload fa fa-upload fa-l2'), 'C:\Users\jdoe\Downloads\TestFiles\TestPassport.png')Thread.sleep(2000)//等待“打开”对话
WebUI.switchToWindowIndex(0)
CustomKeywords.'tools.uploadFiles.uploadFile'(findTestObject('FILE_UPLOAD/Page_VirtualWealth/label_upload fa fa-upload fa-l_1'), 'C:\Users\jdoe\Downloads\TestFiles\Bank.pdf')Thread.sleep(2000)//等待“打开”对话
WebUI.switchToWindowIndex(0)
CustomKeywords.'tools.uploadFiles.uploadFile'(findTestObject('FILE_UPLOAD/Page_VirtualWealth/label_upload fa fa-upload fa-l_12'), 'C:\Users\jdoe\Downloads\TestFiles\Bill.pdf')Thread.sleep(2000)//等待“打开”对话
WebUI.switchToWindowIndex(0)...
关于testing - Katalon 自定义 "uploadFiles"关键字未加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373790/
我仔细阅读了说明 here ,但仍然在记录网络上按下时(当然是在 chrome 上)我仍然使用常规浏览器而不是隐身模式。也许有办法在 testCase 脚本中更改它? 如何使用隐身模式进行录制? 这是
在我们的 Katalon Studio项目我们有一个测试用例。 我们喜欢该测试用例在运行测试套件时接受来自命令行的参数。 例如,我们喜欢用 parameter=A 运行相同的测试用例一次。另一个是 p
我正在使用 Katalon Studio 通过 Web 服务调用获取响应对象,现在我想检查给定的用户值是否存在于响应对象中。我怎样才能做到这一点?请帮忙。代码:: ResponseObject get
我在Katalon中保存了一个TestObject,它有一个ul标签。我希望用它来编写一个涉及其 li 元素的测试用例,但不知道如何在 Katalon 中选择它们,更不用说循环遍历它们了。在 Sele
我试图捕获SVG对象,但Katalon程序无法做到这一点。我一直在寻找互联网上的操作方法,但已经过去了数小时,但我仍然一无所获。您能为我最后一个对象`Deale:Przypisania的xpath写信
我可以知道如何从 Katalon Studio 中的 excel 表中读取数据,以便从文件中读取 API 端点以检查其输出吗? 如何在 java 中编写代码来运行 URL 并验证来自 API 端点的响
我需要确保我们的软件能够在市面上所有类型的移动 Android 和 iOS 设备上顺畅运行。 Katalon Studio 是否能够在不同类型的设备上运行测试而无需实际拥有这些设备? 最佳答案 是的,
我正在尝试构建一个测试层次结构,在其中执行其他测试套件,以便新的测试套件从上一个套件停止的地方开始。有什么方法可以在我的测试套件设置中运行测试套件执行吗? @SetUp(skipped = false
我有一个 powershell 脚本,它执行以下但很难找到测试套件路径 docker run -t -v ${pwd}:/katalon/katalon/source katalonstudio/ka
在 Katalon Studio 中可以同时运行多少个测试? 推荐的最低配置需要 1GHz CPU 和 2GB RAM。当我在我的 16GB 计算机上运行测试时,同时运行 5-6 个较短的测试(大约
我想知道日志记录的最佳实践是什么,因为我有一个通用测试用例,我从中调用其他特定测试用例,我不喜欢使用 KeywordLogger 或 KeywordUtil 每个类中的对象。我应该只使用 Keywor
我已经使用Groovy在Katalon Studio中创建了一个自定义关键字函数。 下面是我的功能 def referenceTabRecordSelection(String expectedRef
我有 OpenJDK8 和 OpenJDK13。但我无法启动 Katalon Studio。这是日志: 我听说Katalon studio需要OpenJDK8。有没有办法将 katalon studi
我想在报告生成后执行脚本,目前我只能使用监听器类,但这发生在报告创建之前。下面是监听器类的示例。 @AfterTestSuite def sampleAfterTestSuite(TestSu
我正在用 Katalon 编写脚本,但现在卡住了。当使用 Katalon 的 Chrome 附加组件时,我可以在我现有的浏览器窗口中启动自动化进程时按下播放键。在这个浏览器中,我已经登录到我的目标 U
我在 .net visual studio 中有一个名为 slowcheetah 的东西,它允许我为环境 URL 存储多个 app.configs,并根据我针对我的 selenium 测试运行的测试环
我正在尝试远程运行 Katalon 生成的 CLI 命令。但是我收到一个错误。 命令 - winrs -r: D:\Katalon_Studio_Windows_64-5.4.2\katalon -n
我想使用 Katalon 测试登录,但我使用的是 CAPTCHA。 CAPTCHA 中的数字始终更改。 Katalon 可以在运行测试时读取它吗? 最佳答案 我认为你做不到。 CAPTCHA 的意思是
我想知道是否有任何方法可以在脚本模式下减小字体大小,因为在笔记本电脑上工作时,较大的文本只能看到几行。需要大量滚动,这不是最佳体验。 最佳答案 Window -> Katalon Studio Pre
目前,Katalon studio 中的记录功能使用所有可能性来识别元素(即标签、id、名称、类、文本和完整的 XPath)。由于某些原因,完整的 XPath 在实际测试中总是无法识别元素,而元素上的
我是一名优秀的程序员,十分优秀!