首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用selenium验证错误消息

无法使用selenium验证错误消息
EN

Stack Overflow用户
提问于 2015-04-05 16:08:26
回答 2查看 1.7K关注 0票数 0

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

随附的是截图-

我尝试了BrowserDriver.getBrowserDriver().getPageSource().contains("warning message here")和assertTrue()语句,但是它不起作用。

请告诉我方法

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-05 17:51:03

您可以尝试使用以下代码。注意:选择器的编写方式是根据故障div文本标识元素。请确保选择器内的文本与消息中显示的文本相同(特别是空格)。如果可能的话,我建议您根据类/id找到元素。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2015-04-05 16:30:53

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

代码语言:javascript
复制
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);

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

代码语言:javascript
复制
new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.id("your-element")));

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29459297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档