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

我尝试了BrowserDriver.getBrowserDriver().getPageSource().contains("warning message here")和assertTrue()语句,但是它不起作用。
请告诉我方法
发布于 2015-04-05 17:51:03
您可以尝试使用以下代码。注意:选择器的编写方式是根据故障div文本标识元素。请确保选择器内的文本与消息中显示的文本相同(特别是空格)。如果可能的话,我建议您根据类/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());发布于 2015-04-05 16:30:53
首先,您希望尽可能少地设置implicitlyWait属性:
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);那么最好使用ExpectedConditions来捕获该元素:
new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("your-element")));所以您不需要使用assertTrue()或类似的东西,如果WebDriverWait找不到一个元素,它就会失败。
不要忘记在之后更改implicitlyWait值,返回到默认的值。
https://stackoverflow.com/questions/29459297
复制相似问题