Selenium Webdriver:方法 alert() 未为 WebDriver.TargetLocator 类型定义

Posted

技术标签:

【中文标题】Selenium Webdriver:方法 alert() 未为 WebDriver.TargetLocator 类型定义【英文标题】:Selenium Webdriver: The method alert() is undefined for the type WebDriver.TargetLocator 【发布时间】:2011-08-24 15:23:36 【问题描述】:

我正在尝试使用 Selenium Webdriver 处理警报,根据 selenium 文档,正确的实现是:

Alert alert = driver.switchTo().alert();

但是我收到错误消息 The method alert() is undefined for the type WebDriver.TargetLocator

什么版本的 Selenium 2 有这个 web driver api

【问题讨论】:

【参考方案1】:

HmltUnit 驱动程序不支持警报。在 htmlUnitDriver.java (Selenium 2.0.6) 中:

public Alert alert() 
  throw new UnsupportedOperationException("alert()");

您使用的是哪个驱动程序?

【讨论】:

【参考方案2】:

我正在使用 selenium 2.3,它对我有用。据我所知,警报仅适用于只有确定按钮的窗口。那就是你放 alert.accept(); 的地方声明。我在警报中看到的另一个问题是它可能会跳过警报,因此您可能必须为该特定警报设置等待语句。希望这会有所帮助。

【讨论】:

【参考方案3】:

您可能需要为警报使用单独的导入语句:

import org.openqa.selenium.Alert;

我遇到了同样的问题。

【讨论】:

以上是关于Selenium Webdriver:方法 alert() 未为 WebDriver.TargetLocator 类型定义的主要内容,如果未能解决你的问题,请参考以下文章

python+selenium—webdriver入门

c#爬虫-selenium检测webdriver封爬虫的解决方法

selenium+webdriver+python 中警告框的处理方法

Python Selenium Webdriver常用方法总结

Selenium4:“类型 WebDriver.TargetLocator 的方法 newWindow(WindowType) 未定义”

pyse基于selenium(webdriver)进行了简单的二次封装,比selenium所提供的方法操作更简洁。