Selenium webdriver:文本被切断时验证文本是否通过?

时间:2014-04-29 00:53:37

标签: java selenium selenium-webdriver

我的verifyText函数的片段:

String actual = driver.findElement(By.xpath(OR.getProperty(object))).getText();
String expected=data;

我的isDisplayed功能的片段:

if (driver.findElement(By.xpath(OR.getProperty(object))).isDisplayed()){

数据="请输入有效的电子邮件地址"

然而,唯一可见的文字是"请"。但是当我使用Selenium IDE时,它也会看到"请输入有效的电子邮件地址"。它只是被切断了。但自动化通过了这一步,但我希望它失败。我尝试了上面的两个函数,结果相同。

有什么方法可以让我们在期待&#34时失败这一步;请输入有效的电子邮件地址"但只有"请"是否对用户可见?

HTML:

<li class="mktFormReq mktField" title="Please enter a valid email address">
<label>Email Address:</label>
<span class="mktInput mktError">
<input id="Email" class="mktFormText mktFormEmail mktFReq" type="text" tabindex="3"     maxlength="255" value="" name="Email">
<span class="mktFormMsg" style="left: 214px;">Please enter a valid email address</span>
</span>    
</li>

目视:

只有Please是可见的,其余的如果被切断。

2 个答案:

答案 0 :(得分:1)

Selenium不知道你在页面上看到了什么,它只检查HTML。您的HTML包含&#34;请输入有效的电子邮件地址&#34;,我不知道为什么它不会显示在您的网页中。

由于它总会返回HTML中的内容,如果您只是检查&#34;请&#34;

,您的测试将始终失败。

答案 1 :(得分:0)

该节点包含文字&#34;请输入有效的电子邮件地址&#34;,这就是为什么selenium正在传递,如果它是否可见则无关紧要(事实上,它是可见的,因为元素存在)

我认为没有办法验证在这种情况下,您只需要在视觉上进行检查。

请记住,自动化不是手动测试替代品。