在我的程序中,我收到以下javascript警报
我可以切换到此提醒。我能够获取文本并单击“确定”和“取消”按钮。我遇到的问题是使用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}]
答案 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
或其他一些错误消息。正如劳伦斯蒂尔尼所提到的,你应该确保在终止驱动程序之前关闭警报。您的代码应该无论断言是否成功。