获取JavaScript错误:" e为null"当使用assert来验证javascript警报文本时

时间:2014-08-08 21:18:18

标签: java javascript selenium

在我的程序中,我收到以下javascript警报 enter image description here

我可以切换到此提醒。我能够获取文本并单击“确定”和“取消”按钮。我遇到的问题是使用assertequals来验证警报文本。我使用以下代码

String Test = driver.switchTo().alert().getText();
System.out.println(Test);
Assert.assertEquals(Test, "You are sharing your report with \"Limited Overall-10000 \".\n\nThis will share your report with \"179\" people. Continue?");

System.out.println正确打印警报框的文本。但是,在尝试使用assertequals时出现以下错误。它很奇怪,因为这些相同的步骤适用于页面上的其他JavaScript警报。

 org.openqa.selenium.WebDriverException: [JavaScript Error: "e is null" {file: "file:///C:/Users/IBM_AD~1/AppData/Local/Temp/anonymous2086351268768311654webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js" line: 7716}]     

2 个答案:

答案 0 :(得分:1)

我遇到了同样的错误。

原来我在关闭警告框之前关闭了webdriver

关闭/单击警报然后关闭驱动程序修复了问题。

答案 1 :(得分:1)

您遇到了Selenium中的错误:

https://code.google.com/p/selenium/issues/detail?id=7977

https://code.google.com/p/selenium/issues/detail?id=3544

(是的,两个错误报告是相关的。)

Selenium存在一个问题,即如果您在警报处于活动状态时尝试终止驱动程序,则会收到e is null或其他一些错误消息。正如劳伦斯蒂尔尼所提到的,你应该确保在终止驱动程序之前关闭警报。您的代码应该无论断言是否成功