java/selenium webdriver 操作 class 引发的 InvocationTargetException

InvocationTargetException thrown with java/selenium webdriver action class

我在 java 中使用 IE 驱动程序。我在 c# 中做得很好,但尝试 java 并遇到了障碍。我在 class 级别使用单例模式实例化驱动程序,然后使用 @Test 开始 junit 测试。我将元素的查找与操作分开,元素的查找非常有效地识别 id=69 的元素和浏览器自动分配的十六进制代码。到目前为止一切顺利。

然后我为 WebElement 获取该变量并将其传递给 action.click(element); 此时,InvocationTargetException 被抛出并带有空值。研究我发现驱动程序 null 在哪里导致问题,但就像我说的驱动程序不是 null 并且有一个元素变量可以准确填充。

我想知道 selenium 引用是否有问题,或者在尝试使用该库时可能在幕后抛出空值。有什么想法可以使它起作用吗?这在技术上是一个 java.lang.reflect 异常,而不是 selenium 特定的异常,如果它是一个 null 变量,我希望它抛出一个 selenium 异常。

如有任何指点或想法,我们将不胜感激。

我找到了答案。操作 class 未绑定到驱动程序。所以我可以随心所欲地使用驱动程序,但是动作启动找不到浏览器来执行动作。我有一个名为 Action 的子 class 正在使用,它使我与硒的 "Actions" class 混淆。

糟糕,但是如果有人在尝试使用 selenium 时遇到 InvocationTargetException 的空值,请确保每个 selenium class 都已正确实例化并与活动驱动程序实例相关联。

我使用了以下适合我的代码。

((JavascriptExecutor) driver).executeScript("return arguments[0].click();", element);