【发布时间】:2014-06-06 15:22:16
【问题描述】:
在我的测试中,出现了许多警报。例如,如果我没有在表格中填写必填项目,我会收到警报。到目前为止,我已经能够使用以下代码切换到它们并执行我的操作(验证文本,单击确定/取消)。
basicClick(AppObjects.Continue);
String warningText2 = driver.switchToAlert().getText();
Assert.assertEquals(warningText2, "You have not responded to all of the items on this page.\n\nPlease click 'OK' to return to the current page, or 'Cancel' to go to the next page.");
driver.switchToAlert().accept()
我现在正在尝试测试另一个警报。它位于我的应用程序的不同部分,并且由与以前的警报不同的情况引起,但它仍然只是出现的 javascript 警报。我使用下面的代码尝试验证文本并单击“确定”,但它不起作用。
basicClick(AppObjects.Continue);
String warningText3 = driver.switchToAlert().getText();
Assert.assertEquals(warningText3, "A comment would be helpful, but is not required.\n\nPlease click 'OK' to return to the current page, or 'Cancel' to go to the next page");
driver.switchToAlert().accept();
尝试使用网络驱动程序切换到此新警报时出现以下错误。如何解决此问题并验证警报中的文本并单击确定/取消?
这是我在使用 IE 或 FF 时遇到的错误
org.openqa.selenium.UnhandledAlertException:模态对话框存在:A 评论会有所帮助,但不是必需的。
请单击“确定”返回当前页面,或单击“取消”转到 下一页构建信息:版本:'2.42.0',修订:'5e82430', 时间:'2014-05-22 20:18:07' 系统信息:主机:'jgubbels',ip: '10.50.13.78', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40' 会话 ID: 5375f9ca-7077-403b-b8e2-fb671ee238b6 驱动程序信息: org.openqa.selenium.ie.InternetExplorerDriver 功能 [{平台=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, 忽略ZoomSetting=false,enablePersistentHover=true, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true,unexpectedAlertBehaviour=dismiss, 版本=10,即usePerProcessProxy=false,cssSelectorsEnabled=true, ignoreProtectedModeSettings=false,requireWindowFocus=false, handleAlerts=true, initialBrowserUrl=, ie.forceCreateProcessApi=false,nativeEvents=true, browserAttachTimeout=0, 即.browserCommandLineSwitches=, takeScreenshot=true}]
这是我在使用 Chrome 时遇到的错误
org.openqa.selenium.UnhandledAlertException:意外警报打开
(会话信息:chrome=35.0.1916.114)(驱动程序信息: chromedriver=2.10.267521,平台=Windows NT 6.1 SP1 x86_64)(警告: 服务器没有提供任何堆栈跟踪信息)命令 持续时间或超时:3 毫秒:null 构建信息:版本: '2.42.0',修订:'5e82430',时间:'2014-05-22 20:18:07'系统 信息:主机:'j',ip:'xx.xx.xxxx',os.name:'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40' 会话 ID:fb3d4212ee1801c6aafbf6f95a9f9b6d 驱动程序信息: org.openqa.selenium.chrome.ChromeDriver 功能 [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, 铬={userDataDir=C:\Users\IBM_AD~1\AppData\Local\Temp\scoped_dir10676_19364}, 可旋转=false,locationContextEnabled=true,版本=35.0.1916.114, 需要HeapSnapshot=true,cssSelectorsEnabled=true, databaseEnabled=false,handlesAlerts=true, browserConnectionEnabled=false,nativeEvents=true, webStorageEnabled=true,applicationCacheEnabled=false, 需要屏幕截图 = true}] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知 来源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来源)在 java.lang.reflect.Constructor.newInstance(未知来源) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:151) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:596) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:611) 在 org.openqa.selenium.remote.RemoteWebDriver.getScreenshotAs(RemoteWebDriver.java:321) 在 com.ibm.atmn.waffle.core.webdriver.WebDriverExecutor.saveScreenshotWithFilename(WebDriverExecutor.java:311) 在 com.ibm.atmn.waffle.base.BaseTestListener.onTestFailure(BaseTestListener.java:72) 在 org.testng.internal.Invoker.runTestListeners(Invoker.java:1895) 在 org.testng.internal.Invoker.runTestListeners(Invoker.java:1879) 在 org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1292) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) 在 org.testng.TestRunner.privateRun(TestRunner.java:767) 在 org.testng.TestRunner.run(TestRunner.java:617) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:334) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) 在 org.testng.SuiteRunner.run(SuiteRunner.java:240) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1224) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1149) 在 org.testng.TestNG.run(TestNG.java:1057) 在 org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
【问题讨论】: