无法使用硒验证错误消息

Unable to validate Error message using selenium

我正在尝试验证执行操作后出现在网页上的消息(系统中任何记录的 updating/creation。) 问题是消息在 3-4 秒后消失,因此我无法捕获 DOM(Javascript)

中的任何更改

附上截图- 我尝试 BrowserDriver.getBrowserDriver().getPageSource().contains("warning message here") 使用 assertTrue() 语句但它不起作用。

请告诉我方法

首先,您希望尽可能少地设置 implicitlyWait 属性:

driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);

那么最好使用 ExpectedConditions 来捕获该元素:

new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("your-element")));

所以您不需要使用 assertTrue() 或类似的东西,如果找不到元素,WebDriverWait 就会失败。

不要忘记更改 implicitlyWait 值之后,返回到默认值。

您可以试试下面的代码。注意:选择器的编写方式是根据失败的 div 文本来识别元素。请确保选择器中的文本与消息中显示的一样(特别是空格)。我总是建议你根据 class/id 找到元素,如果它是唯一的,如果可能的话

By xpath = By.xpath("//div[contains(.,'Failed To Save')]");

WebElement element = (new WebDriverWait(driver,5)).until(ExpectedConditions.presenceOfElementLocated(xpath));
System.out.println(element.getText());