在selenium webdriver中声明和启动带有等待的警报时,类型不匹配:无法从警报转换为警报错误即将出现

在selenium webdriver中声明和启动带有等待的警报时,类型不匹配:无法从警报转换为警报错误即将出现,selenium,selenium-webdriver,Selenium,Selenium Webdriver,在下面的代码中,尽管我在SeleniumWebDriver中声明并初始化了一个警报,但SeleniumWebDriver中出现了以下错误 Alert action = wait.until(ExpectedConditions.alertIsPresent()); 在上述警报中 类型不匹配:无法从警报转换为警报 尽管上述警报已正确声明,但仍将出现。以下是您问题的答案: 根据您的问题,您提供了以下代码行: Alert action = wait.until(ExpectedConditions.

在下面的代码中,尽管我在SeleniumWebDriver中声明并初始化了一个警报,但SeleniumWebDriver中出现了以下错误

Alert action = wait.until(ExpectedConditions.alertIsPresent());
在上述警报中

类型不匹配:无法从警报转换为警报


尽管上述警报已正确声明,但仍将出现。

以下是您问题的答案:

根据您的问题,您提供了以下代码行:

Alert action = wait.until(ExpectedConditions.alertIsPresent());
从语法上讲,你是非常正确的

观察代码块的以下快照,调用
alertIsPresent()
将返回
ExpectedCondition

现在进入错误部分,您将看到类型不匹配:无法从警报转换为警报

最可能的原因可能是您的代码不完整或缺少导入。要使这一行代码正常工作,您必须具备以下条件:

  • 在使用实例之前,先启动
    WebDriverWait
    的实例
  • 进行适当的
    导入
  • 例如:

    import org.openqa.selenium.Alert;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    //your code
    WebDriverWait wait8 = new WebDriverWait(driver, 10);
    Alert action = wait8.until(ExpectedConditions.alertIsPresent());
    
  • 通过这一点,你应该看到错误


    如果这能回答您的问题,请告诉我。

    第一行应该是wait.until(ExpectedConditions.alertIsPresent());后跟警报操作=driver.switchToalert();您对
    警报
    使用了什么导入?您可以添加异常的完整堆栈跟踪吗?@santhoshkumar不需要
    alertIsPresent
    returns
    driver.switchTo().alert()
    @GaurangShah然后我认为,有两个警报类正在发挥作用,一个是警报警报对象引用变量,另一个是预期密码返回的警报类。两者都可能引用具有相同名称的不同类“警报”。在Jayant,您是否可以检查更新webdriver和selenium standalone。。。这只是一个想法,我不确定谢谢@DebanjanB。它对我有效。软件包有一个导入问题。现在代码完全正常了