首页 > 解决方案 > 在 Ant Design 中获取成功警报消息的文本并使用 Selenium 进行验证

问题描述

在我的一个项目中,我必须使用 Selenium 验证成功警报文本。UI 按照 Ant 设计用 React JS 编码。如需验证,请点击此链接“ https://ant.design/components/message/ ”并点击显示正常消息。该消息显示在页面顶部的上方,但我无法使用 Core Java 中的 Selenium Webdriver 编码从中获取文本。请帮忙。

我试过这段代码:

driver.findElement(By.cssSelector(".ant-btn-primary")).click();
            WebDriverWait wait = new WebDriverWait(driver, 60);
            WebElement successmessage = wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("ant-message-custom-content-ant-message-success")));
            successmessage.getText();

标签: javaseleniumxpathcss-selectorswebdriverwait

解决方案


提取文本这是一条正常的消息,您需要为此诱导WebDriverWait并且visibilityOfElementLocated()您可以使用以下任一Locator Strategies

  • cssSelector

    driver.get("https://ant.design/components/message/");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.ant-btn.ant-btn-primary"))).click();
    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.ant-message"))).getText());
    
  • xpath

    driver.get("https://ant.design/components/message/");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='ant-btn ant-btn-primary']"))).click();
    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='ant-message']"))).getText());
    
  • 控制台输出:

    This is a normal message
    

推荐阅读