我正在使用带有java的IE驱动程序。我在c#中做得很好,但是尝试java并遇到麻烦。我在类级别使用单例模式实例化驱动程序,然后使用@Test开始junit测试。我将元素的发现与动作分开,元素的发现很有效,可以识别id = 69的元素和浏览器自动赋值的十六进制代码。到目前为止一切都很好。
然后我将该变量用于WebElement并将其传递给action.click(element);
此时,抛出InvocationTargetException
并返回null。研究我发现驱动程序null导致问题的地方,但是我说驱动程序不是null并且有一个准确填充的元素变量。
我想知道selenium引用是否有问题,或者在尝试使用库时可能会抛出null的幕后信息。我有什么想法可以让它发挥作用?这在技术上是一个java.lang.reflect异常,而不是特定于selenium的异常,如果它是一个null变量,我会期望它抛出一个selenium异常。
任何指针或想法都会受到赞赏。
答案 0 :(得分:4)
我找到了答案。 actions类未绑定到驱动程序。所以我可以使用我想要的驱动程序,但是启动的操作无法找到浏览器来执行操作。我有一个名为Action的子类,我正在使用它,这使我与#34; Actions"硒类。
糟糕,但是如果有人在尝试使用selenium时遇到空值InvocationTargetException
,请确保每个selenium类都已正确实例化并与活动的驱动程序实例相关联。
答案 1 :(得分:0)
我使用了下面适用于我的代码。
((JavascriptExecutor) driver).executeScript("return arguments[0].click();", element);