SeleniumWebDriver(Java):处理字段验证消息

SeleniumWebDriver(Java):处理字段验证消息,java,validation,selenium,field,Java,Validation,Selenium,Field,如何处理这种弹出窗口。我的目标是在单击Submit按钮时获取消息,然后在我自己的文本中验证它(可能使用assert)。我曾尝试使用firepath(xpath)定位元素,但当我单击firebug上的“定位元素”按钮时,弹出窗口消失了 这是弹出窗口的屏幕截图 代码如下: <p class="errors"></p> <input id="email" class="form-control" type="email" value="" name="email" re

如何处理这种弹出窗口。我的目标是在单击Submit按钮时获取消息,然后在我自己的文本中验证它(可能使用assert)。我曾尝试使用firepath(xpath)定位元素,但当我单击firebug上的“定位元素”按钮时,弹出窗口消失了

这是弹出窗口的屏幕截图

代码如下:

<p class="errors"></p>
<input id="email" class="form-control" type="email" value="" name="email" required="" oninput="setCustomValidity('')" oninvalid="this.setCustomValidity('Email Cannot Be Empty')" placeholder="Email *" data-placeholder="X" data-format="">


提前感谢。

如果元素不在
iframe
中,则可以直接按如下方式尝试:

String emailId  = driver.findElement(By.id("email")).getText()  
// write string equals login here comparing emailId that is captured and the one you want to compare to.
如果不是,首先找到
iframe
并切换到它,然后使用上面的代码查找元素。有关切换黑白帧的更详细答案如下


在弹出窗口中查找元素:


不要先单击
查找元素
按钮(Firebug的),而是右键单击要在弹出窗口中查找的元素,然后选择
使用Firebug检查
,这将为元素提供相应的HTML代码。

从屏幕上看,它看起来像一个工具提示。有点像当我们把鼠标放在谷歌标题上的时候

要验证工具提示,我们可以获取属性“title”并进行验证。 例如:在。工具提示放置在标题属性中,如下所示

title=“谷歌”


对于您的场景,显示的提示消息在“oninvalid”属性中可用,如下所示。因此,获取这个属性值并验证它

oninvalid=“this.setCustomValidity('电子邮件不能为空')”


提供站点的URL Hi Girish,我无法提供URL,因为该应用程序仍在本地服务器上开发。谢谢你嗨,Giri,这不是一个工具提示,当点击submit按钮时会出现类似警告信息,然后应用程序会验证每个字段,不管是否为空。当字段为空时,此消息将显示在字段顶部。您好,Naveen,我的目标是从该弹出窗口中获取文本,并对其重新进行验证以确保字段的验证有效。据我所知,代码中没有iframe。谢谢。更新代码。使用
getText
方法检索web元素的文本。一旦存储在字符串中,它就是使用Jaa库进行的字符串比较。如果您使用的是任何框架,可以将其作为实际值传递给断言方法,如
assertEqual(实际,预期)
等。感谢您的回复。我了解web元素、断言和获取文本的内容,当我单击submit按钮时,我很难获得警告消息,因为如果我进行任何事件(甚至滚动页面),它将消失。所以,当司机试图捕捉信息时,信息已经消失了。我很困惑。为什么要在自动化中进行任何会导致消息消失的事件?请你明确你正在尝试什么,你想实现什么?另外,请参阅我的答案中的“在弹出窗口中查找元素:
部分”。我想检查“为空”字段验证是否有效。步骤是将字段留空,然后单击提交按钮。我的期望是,会出现一条弹出消息。之后,我将得到弹出窗口的内容消息,然后将其与我自己的文本进行比较。问题是当我试图获取内容时,弹出窗口消失了。
<div id="hplogo" style="background-size:272px 92px;height:92px;width:272px" title="Google" onload="window.lol&&lol()" align="left">