在没有扩展名/管理员权限的情况下通过Chrome运行RFT

时间:2019-10-15 23:36:03

标签: java google-chrome rft

我的工作场所使用RFT进行端到端测试(除其他外),我们目前正在Internet Explorer中进行此测试(出于兼容性方面的考虑)。我们想开始在Chrome中进行测试,这是我们PROD环境中仅有的其他浏览器(Firefox仅在DEV中可用)。

不幸的是,我们需要克服两个主要障碍:

  • 首先,我们在DEV计算机上没有本地管理员权限(请注意PROD)。我们的主管确实愿意,并且非常乐意帮助我们以管理员身份运行应用程序,但这显然对每个涉案人员都很繁琐,而不是一个好的长期解决方案。
  • 第二,我们的Chrome安装类似于PROD中的安装,被锁定到无法在开发人员模式下运行(即我们无法检查HTML)的地步,更重要的是,我们无法安装Chrome扩展。由于RFT需要扩展才能运行,因此显然存在很大问题。
  • 不用多说,我们一直在努力切换到Selenium,但是管理层不希望动摇太多,所以现在不管它有多糟糕,我们都陷在RFT中。

没有扩展名,我已经能够使用startApp()甚至startBrowser()之类的方法通过RFT启动Chrome。不幸的是,RFT大约需要1.5分钟才能检测到该应用程序已启动(尽管Chrome只需花一秒钟即可启动),一旦启动,我就无法让RFT识别Chrome并允许我访问它HTML。

我尝试过类似的事情:

ProcessTestObject pto = startBrowser("Chrome", url");
getRootObject().enableForTesting((int) pto.getProcessId()); //casting to INT seems to be the only way to get this to return TRUE

诚然,我对RFT的经验很少,而且文档/指南非常稀缺。但是,根据我在代码库中观察到的内容,我应该能够执行以下操作:

BrowserTestObject bto = new BrowserTestObject(pto);

据我了解,如果确实进行了正确的处理,则BrowserTestObject将使我能够查找()HTML元素。

不幸的是,即使root.enableForTesting()返回true,BrowserTestObject最终还是为null,这告诉我要么我定位了错误的Chrome进程(尽管我不知道如何找到正确的Chrome进程),要么我正在忽略其他东西。

我尝试将Chrome映射为应用程序而不是浏览器,但仍然遇到相同的问题。我只是不了解RFT在后台映射对象的作用,而我为弄清楚它(调试,打印子对象)所做的所有尝试都没有得到回报。

我还应该注意,我今天让我的主管为我安装了Chrome扩展程序,但这仍然失败。即使我以管理员身份运行RFT(也会以管理员身份启动Chrome),RFT也无法将Chrome启用为浏览器环境,因为Chrome似乎阻止了RFT与之交互的Java应用程序。结果,我可以启动Chrome,该扩展程序本身似乎可以运行,但是我仍然无法与Chrome进行交互。例如,如果我尝试将Chrome映射到“对象映射”,则映射工具将突出显示元素约一秒钟,然后挂起至少5分钟,然后最终引发异常并失败。

有人知道是否有一种方法可以将Chrome映射为TestObject,从而允许我们访问其HTML?如何确定应该使用哪个Chrome进程(假设只有一个进程可以执行所有操作)?

地狱,有谁知道我在哪里可以找到不错的RFT教程?

0 个答案:

没有答案