- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
LeanFT 和 Java:在 Docker 容器中运行测试我的基于 Java 的 LeanFT 测试在使用 IntelliJ、JUnit 和 LeanFT 的本地计算机上运行良好:
Chrome 打开,我看到测试正在运行,一切正常。
现在我想在 Docker 容器中运行这些测试。
当我的测试仅进行简单的导航时,一切正常:
@test
public void simpleTest2() throws GeneralLeanFtException {
browser.navigate("https://www.google.com");
}
Docker 启动,获取 LeanFt 许可证并运行测试:
dev@ubuntu:~$ docker run -p 5900:5900 -v /home/dev/development/tempprojects/LeanFT_1/target:/tests --env LFT_LIC_SERVER=S021000105693b.adr.admin.ch --env LFT_LIC_ID=10594 --env RUN_MODE=junit --env RUN_CMD=ch.admin.bit.LeanFtTest -t -i -w /tests functionaltesting/leanft-chrome
LeanFT runtime engine started successfully
License: Concurrent UFT Enterprise Concurrent User
Port: 5095
Version: 14.3.546, (c) Copyright 2015 EntIT Software LLC
Installation Folder: /opt/leanft
Executing junit test: ch.admin.bit.LeanFtTest
JUnit version 4.12
.
Time: 5.778
OK (1 test)
LeanFT runtime engine has stopped successfully
问题:
当我在测试中添加 WebElement 时,它不起作用(在 IntelliJ 中它可以与 LeanFT-Runner 配合使用)
类似这样的事情:
Menu dEFRITENMenu = browser.describe(Menu.class, new MenuDescription.Builder()
.accessibilityName("")
.id("")
.role("menu")
.tagName("UL")
.index(1).build());
dEFRITENMenu.select("EN");
错误是:
1) simpleTest(ch.admin.bit.LeanFtTest)
com.hp.lft.sdk.ReplayObjectNotFoundException: Cannot identify the object "Web Menu".
Verify that this object's properties match an object currently displayed in your application.
at com.hp.lft.sdk.internal.ReplayExceptionFactory$1.create(ReplayExceptionFactory.java:34)
at com.hp.lft.sdk.internal.ReplayExceptionFactory.createOrDefault(ReplayExceptionFactory.java:197)
at com.hp.lft.sdk.internal.ReplayExceptionFactory.createOrDefault(ReplayExceptionFactory.java:21)
at com.hp.lft.sdk.internal.TestObjectExecuterBehaviorBase$ReplayErrorHandler.onError(TestObjectExecuterBehaviorBase.java:65)
at com.hp.lft.sdk.internal.CommunicationClientImpl.handleError(CommunicationClientImpl.java:221)
at com.hp.lft.sdk.internal.CommunicationClientImpl.send(CommunicationClientImpl.java:96)
at com.hp.lft.sdk.internal.TestObjectExecuterBehavior.executeMethod(TestObjectExecuter.java:33)
at com.hp.lft.sdk.internal.TestObjectBase.executeMethod(TestObjectBase.java:119)
at com.hp.lft.sdk.internal.web.WebMenu.access$100(WebMenu.java:14)
at com.hp.lft.sdk.internal.web.WebMenu$2.invoke(WebMenu.java:52)
at com.hp.lft.sdk.internal.TestObjectOperationWrapper.executeWithEvents(TestObjectOperationWrapper.java:81)
at com.hp.lft.sdk.internal.TestObjectOperationWrapper.executeWithEvents(TestObjectOperationWrapper.java:102)
at com.hp.lft.sdk.internal.web.WebMenu.select(WebMenu.java:56)
at ch.admin.bit.LeanFtTest.simpleTest(LeanFtTest.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
有人有想法或运行示例吗?
最佳答案
元素真的存在吗?
要调试该问题的答案,请尝试 browser.getPage().getText()
并使用 Reporter
api 报告值,或 println
它或其他什么。在 browser.navigate
之后执行此操作如果它有效,它应该适用于任何其他 LeanFT 命令。
您甚至可以描述 html 的正文并记录 innerHTML
值,如下所示:
WebElement htmlBody = browser.describe(WebElement.class, new WebElementDescription.Builder().tagName("BODY").build());
htmlBody.getInnerHTML();
浏览器扩展是否已启用?
无论是否启用浏览器扩展,启动都可以进行,但对于复杂的执行,您需要启用 LeanFT 浏览器代理。
描述正确吗?
正如我所见,初始描述需要:
accesibilityName
, id
, "menu"
角色,<ul>
元素index
必须是1
。 如果索引是2
怎么办? ?您是否 100% 确定所有浏览器/所有计算机上的索引都相同?如果不是Menu
怎么办?元素?如果您使用WebElement
,上面的描述是否有效?相反?
尝试消除值错误的风险,并将描述限制为您 100% 确定不会因浏览器而改变的内容。
使用对象识别中心可以在这方面提供很大帮助。
您对上述所有问题的回答都是"is"吗?
嗯,LeanFT 在这种情况下可以工作,但它不会按预期工作。在这种情况下,这可能是一个 LeanFT 错误。
关于java - LeanFT & Java : Run tests in Docker containers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50392300/
我使用 Chrome 在 LeanFT 中使用测试记录器工具录制了一个测试用例。当我执行它时,它会在 Chrome 中打开一个新选项卡,而不是启动一个新的应用程序实例。我尝试在 Firefox 中执行
问题:遗憾的是,C# 中的 LeanFT 无法以隐身模式打开浏览器。我无法将 -incognito 添加到路径,因为我没有管理员权限。我能做些什么?我在想 Sendkeys(“^+N”);但不确定如何
我是 LeanFT 和 JUnit 的新手,LeanFT docs没有阐明如何使用它。 我需要在多个浏览器中运行用 JUnit/MeanFT 网格编写的测试。 现在看起来像这样: @Test
我对 LeanFT 有疑问。当我尝试从 intellij idea (LeanFT> Enable LeanFT) 启动它时出现错误: nulljava.lang.NullPointerExcepti
我使用 UFT 14.02 并使用相同的安装程序安装 LeanFT。当我执行命令时,TestExportTool 给出以下错误消息: java -jar "C:\Program Files (x86)
我必须与已经打开的浏览器进行交互,并执行几次点击、页面导航和从表单控件中读取文本。 LeanFT有这个能力吗? 最佳答案 LeanFT 可以做到这一点,而且还有一些...... 基本上,对于 Lean
虽然 LeanFT 使用 JUnit 作为其测试运行器,但它似乎并未实现“TestRule”。这不包括其他地方描述的“标准”方法。 How to Re-run failed JUnit tests i
我在 IntelliJ IDEA 中有一个带有 TestNG 框架的 LeanFT 测试套件。我使用 mvn install 命令生成 jar 文件。当我尝试执行它时收到错误消息: Error: Co
我想在 java 中使用 LeanFT 测试一个 android 应用程序,我想知道如何在测试时隐藏软键盘? 最佳答案 如何手动关闭软键盘?您可以通过 LeanFT 以同样的方式进行操作。 如果手动单
我们有一个编辑字段或文本框,当它被监视时,它会在 LeanFt 的对象识别中心被检测为 Winforms 编辑字段。是否可编辑取决于一些前提条件。根据我们重新创建的前提条件,我们想测试编辑字段是否可编
我有一些基于 TestNG 的 LeanFT 测试用例,并尝试生成 jar 文件。我使用 IntelliJ IDEA 在文件 -> 项目结构 -> 项目设置 -> 工件 -> Jar -> 来自具有依
获取 HP.LFT.SDK.GeneralReplayException:一个或多个指定参数无效,同时尝试单击 wpf 按钮(使用 LeanFT 和 Visual Studio 2015 中集成的 C
LeanFT 和 Java:在 Docker 容器中运行测试我的基于 Java 的 LeanFT 测试在使用 IntelliJ、JUnit 和 LeanFT 的本地计算机上运行良好: Chrome 打
我一直在尝试让 LeanFT html 报告与我的 Selenium/Junit 框架一起使用,但到目前为止还没有任何乐趣。我在不同的论坛上多次搜索过该主题,包括。惠普官方资料并尝试了我能找到的所有设
我已经创建了 leanft 项目并使用 DataGrid 创建了一个示例,但它抛出 table was not found 异常,而且我不确定 DataGrid 的测试方式瘦。有人能帮忙解决这个问题吗
使用LeanFT的Java SDK,是否可以对Chrome's "Save As" dialog中的“保存”按钮进行点击操作? 最佳答案 您是否尝试过使用 Object Identification
我是一名优秀的程序员,十分优秀!