我正在使用Maven和TestNG进行测试,我在页面上注入回调,返回页面上发生的一些事件,然后返回测试。 问题是,在测试期间,我必须在页面更改(刷新或转到另一个URL)之前执行此操作,因此首先我检查页面何时将要更改,然后我等待它再次加载并注入新的回调"刷新"页。
不幸的是,由于它是私密的,我无法显示任何代码 我使用this方法检查页面是否即将更改(适应Java)。
我正在使用this等待页面加载(@QIKHAN回答)。
所有这些在Chrome中运行良好,但在Firefox(geckodriver)中抛出:
Javascript错误:NS_ERROR_FAILURE
后面有一个更详细的错误但不那么有启发性:
Javascript错误:SecurityError:拒绝访问属性的权限" some_private_property"关于跨源对象
我找到了许多与此NS_ERROR_FAILURE相关的答案,但没有一个解决了我的问题,甚至here他们说"这是所有错误中最常见的错误"。我猜测这与我在页面正在改变的时刻与页面进行交互的事实有关,但是,它在chrome中运行良好。一旦遇到此错误,测试就会失败,我甚至无法通过try catch捕获它。
我使用的是geckodriver v0.20.1和selenium v3.11.0。
一些帮助将不胜感激。
更新
正如评论中所提到的,我的问题与提到here的问题不一样,因为在我的情况下,测试运行正常直到页面转换的那一刻,然后我才得到错误,错误本身也不一样。
我每次从页面收到事件时以及测试失败时都会截取屏幕截图。最后,截图始终是一个空白页面,因为错误总是在页面变为另一个页面时发生。显然,那段时间内正在执行的代码并不重要,但如果我在那一刻以某种方式与页面进行交互,则会抛出该错误。