无法使用selenium验证错误消息

时间:2015-04-05 16:08:26

标签: javascript dom selenium-webdriver assert

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

附上截图 - enter image description here 我用assertTrue()语句尝试了BrowserDriver.getBrowserDriver().getPageSource().contains("warning message here"),但它没有用。

请让我知道方法

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码。注意:选择器的编写方式是根据失败 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());

答案 1 :(得分:0)

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

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

然后最好使用ExpectedConditions来捕获该元素:

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

因此,您不需要使用assertTrue()或类似的东西,如果无法找到元素,WebDriverWait将失败。

不要忘记更改后隐式的等值,返回默认值。