Selenium返回“元素文本不匹配”,即使它匹配

时间:2014-03-06 11:01:56

标签: selenium xpath selenium-webdriver

我一直在使用selenium builder来创建一些前端用户测试,现在遇到了verifyText的问题,我无法解决。

在检查元素时,找到以下字符串

  

关闭最近添加的项目

我希望它能找到

  

最近添加的项目

我确认我使用的x路径使用firefinder是正确的。在这种情况下,Selenium构建器似乎完全忽略了<span>标记。作为测试,我改变了我想要的字符串

  

关闭最近添加的项目

并返回相同的消息说

  

元素文字“关闭最近添加的项目”与“关闭最近添加的项目”不匹配。

<div id="topCartContent" class="block-content" style="overflow: visible;">
    <div class="inner-wrapper" style="">
        <p class="block-subtitle">
            <span class="close-btn" onclick="TopCart.hideCart()">Close</span>
            Recently added item(s)
        </p>
        <p class="cart-empty"> You have no items in your shopping basket. </p>
    </div>
</div>

我已成功确认<span>代码中的值,为什么我无法确认<p>代码中的值?

//div[1]/header/nav/div[1]/div/div[2]/div/p[1]/span <!--returns Close-->
//div[1]/header/nav/div[1]/div/div[2]/div/p         <!--returns Close Recently added item(s)-->

2 个答案:

答案 0 :(得分:0)

从您提供的HTML片段评估您的xpath并不容易。使用此片段,我设法使用//span[@class='close-btn']找到“关闭”。您可以使用下一个http://www.freeformatter.com/xpath-tester.html

测试xpath查询

答案 1 :(得分:0)

它显示在那里的文本真的很好。假设您在页面上有一个iframe。我喜欢你可以在iframe中获取所有内容的文本并搜索它。这就是我看到它的工作方式。

至于比较两者,我怀疑这是一个空白问题。尝试使用变量存储您获得的内容,然后按''进行拆分。通常我会看到浏览器隐藏的两个空格。将其保存在变量中允许您进入调试模式并观察该变量。堆栈应该告诉你到底有什么。