使用java / selenium webdriver动作类抛出InvocationTargetException

时间:2017-03-07 21:06:54

标签: java selenium selenium-iedriver

我正在使用带有java的IE驱动程序。我在c#中做得很好,但是尝试java并遇到麻烦。我在类级别使用单例模式实例化驱动程序,然后使用@Test开始junit测试。我将元素的发现与动作分开,元素的发现很有效,可以识别id = 69的元素和浏览器自动赋值的十六进制代码。到目前为止一切都很好。

然后我将该变量用于WebElement并将其传递给action.click(element);此时,抛出InvocationTargetException并返回null。研究我发现驱动程序null导致问题的地方,但是我说驱动程序不是null并且有一个准确填充的元素变量。

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

任何指针或想法都会受到赞赏。

2 个答案:

答案 0 :(得分:4)

我找到了答案。 actions类未绑定到驱动程序。所以我可以使用我想要的驱动程序,但是启动的操作无法找到浏览器来执行操作。我有一个名为Action的子类,我正在使用它,这使我与#34; Actions"硒类。

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

答案 1 :(得分:0)

我使用了下面适用于我的代码。

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