【问题标题】:How to get Text from Leave site Alert?如何从离开站点警报中获取文本?
【发布时间】:2019-03-20 04:58:16
【问题描述】:

如何从离开站点警报中获取文本?

我尝试使用 driver.switchTo().alert() 切换到它,但我得到空白文本。

我还附上了alert的截图:

请在这方面帮助我。

下面是我的代码::

public class TestMessage {

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "F://chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ev_onbeforeunload");
        driver.switchTo().frame("iframeResult");
        driver.findElement(By.linkText("Click here to go to w3schools.com")).click();
        System.out.println(driver.switchTo().alert().getText());
    }
}

【问题讨论】:

  • 可能是因为此警告文本是由浏览器生成的,而不是由网站提供的。如果您更改浏览器,则会出现警报,但文本可能会更改。浏览器再次生成的警报“阻止此页面创建其他对话框”中也存在额外文本的情况。不确定 selenium 是否支持这种情况,因为我没有文档说明。
  • 你可以不使用driver.switchTo().frame("iframeResult");就试试吧,它会起作用吗?
  • @akshay patil,链接文本在框架内可用,要获得警报,我需要单击该链接
  • 要点击生成警报的特定链接,driver.switchTo().frame("iframeResult"); 是必需的,因为它在 iframe 下
  • @BlueStar 可能与How to get text from the alert box重复

标签: java selenium alert


【解决方案1】:

原始问题描述中给出的 URL。观察到的行为是根据

设计的

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload

不推荐从 onbeforeunload 处理程序返回自定义消息字符串,包括 chrome。向用户显示一条标准消息,而从事件处理程序返回的字符串被忽略,并且无法从 chromeDriver 接收。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-07
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    相关资源
    最近更新 更多