TestFX 点击菜单项
TestFX clicking menu items
我正在编写一个带有菜单栏的 JavaFX 应用程序。我已经给了菜单项 CSS 个 ID,我想用 TestFX 来点击它们。这是代码:
clickOn("#menu-file").clickOn("#menu-file-new-project");
当我 运行 执行此操作时,我可以看到我的鼠标移动到屏幕上完全错误的位置,然后测试失败,表示找不到任何匹配 #menu-file-new-project
的元素。我假设它找不到它们,因为它从不打开“文件”菜单,因为它点击了错误的位置。
我该怎么办?
Windows10,Java8u120,TestFX 4.0.6。
作为记录,它在单片眼镜无头模式下以同样的方式失败
好吧,这与比例无关,我什至不确定它为什么会起作用,但由于某些原因,在我的测试应用程序实例中重写点方法似乎起作用了:
@Override
public PointQuery point(Node node) {
Point2D topLeftPoint = node.localToScreen(0, 0);
Point2D pos = new Point2D(topLeftPoint.getX(), topLeftPoint.getY());
return super.point(node).atOffset(pos);
}
我正在编写一个带有菜单栏的 JavaFX 应用程序。我已经给了菜单项 CSS 个 ID,我想用 TestFX 来点击它们。这是代码:
clickOn("#menu-file").clickOn("#menu-file-new-project");
当我 运行 执行此操作时,我可以看到我的鼠标移动到屏幕上完全错误的位置,然后测试失败,表示找不到任何匹配 #menu-file-new-project
的元素。我假设它找不到它们,因为它从不打开“文件”菜单,因为它点击了错误的位置。
我该怎么办? Windows10,Java8u120,TestFX 4.0.6。 作为记录,它在单片眼镜无头模式下以同样的方式失败
好吧,这与比例无关,我什至不确定它为什么会起作用,但由于某些原因,在我的测试应用程序实例中重写点方法似乎起作用了:
@Override
public PointQuery point(Node node) {
Point2D topLeftPoint = node.localToScreen(0, 0);
Point2D pos = new Point2D(topLeftPoint.getX(), topLeftPoint.getY());
return super.point(node).atOffset(pos);
}