0

我正在使用带有 java 的 IE 驱动程序。我在 c# 中做得很好,但尝试 java 并遇到了障碍。我在类级别使用单例模式实例化驱动程序,然后使用@Test 开始一个junit 测试。我将元素的发现与动作分开,元素的发现很好地识别了 id=69 的元素和浏览器自动分配的十六进制代码。到现在为止还挺好。

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

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

任何指示或想法将不胜感激。

4

2 回答 2

3

我找到了答案。动作类未绑定到驱动程序。所以我可以使用我想要的所有驱动程序,但是操作启动找不到浏览器来执行操作。我有一个名为 Action 的子类,我正在使用它,这让我与 selenium 的“Actions”类混淆了。

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

于 2017-03-07T21:40:24.223 回答
0

我使用了下面对我有用的代码。

((JavascriptExecutor) driver).executeScript("return arguments[0].click();", element);
于 2018-09-24T07:01:00.263 回答