我正在尝试在Chrome上处理意外的浏览器提醒(用于将所需字段留空)并且之前获得加载状态的例外,一旦我将Chrome驱动程序更改为2.24就解决了 现在我正在使用此代码段接受警报并通过页面
public void loginAlert() {
try{
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
catch (org.openqa.selenium.UnhandledAlertException e) {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText().trim();
System.out.println("Alert data: "+ alertText);
alert.dismiss();}
}
在我期望此警报的页面上定义,同时在同一页面上定义了单击以调用此警报的按钮。
现在,我的测试就是我拥有的
at XXXXPage
classname.WaitForPageLoad()
Button.click()
loginAlert()
但这是一个例外,我花了很多时间试图解决它,最后想要求帮助!
无法使用类'org.openqa.selenium.remote.RemoteWebDriver $ RemoteAlert'将对象'org.openqa.selenium.remote.RemoteWebDriver$RemoteAlert@7277051'转换为类'javafx.scene.control.Alert' org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法使用类'org.openqa.selenium.remote.RemoteWebDriver $ RemoteAlert'将对象'org.openqa.selenium.remote.RemoteWebDriver$RemoteAlert@7277051'转换为类'javafx。 scene.control.Alert” 在Pages.OperatorLoginPage.loginAlert(OperatorLoginPage.groovy:93)
此外,当我查看Geb拍摄的屏幕截图时,即使在显示警报弹出窗口之前就会出现此异常,因为警报未在失败的步骤中显示,并且如果我监视屏幕,它就永远不会出现测试运行时。
答案 0 :(得分:1)
您似乎已将javafx.scene.control.Alert
导入到您的类文件中(我假设您在IDE中过快,并接受它给您的第一个建议)
另外,为什么不使用Geb mechanism for alert handling?