java - 在 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();
解决方案
提取文本这是一条正常的消息,您需要为此诱导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
推荐阅读
- entity-framework - 我正在尝试使用 Oracle 数据库在 Entity Framework .NET 中使用数据库优先方法
- python - 如何从 JSON 对象中提取元素
- osgi - 如何在 Apache Felix Web 控制台中启用组件页面
- python - 如何检查表是否存在变量
- azure - 在 Azure 数据湖中保留 .csv 格式的方法
- r - 数据框中的 NA 值
- angular - 无法读取未定义角度 6 *ngIf 问题的属性
- sql - 如何在sql中获得选择性计数
- reactjs - 如何将一组 React 节点传递给不相关的组件
- azure - 如何区分免费层 Azure CosmosDB 帐户和付费帐户?