栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用XPATH搜索包含以下内容的文本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用XPATH搜索包含以下内容的文本

似乎Selenium背后的家伙OpenQA已经解决了这个问题。他们定义了一些变量以明确匹配空白。就我而言,我需要使用类似于的XPATH

//td[text()="${nbsp}"]

我在这里转载了来自OpenQA的有关此问题的文本(在此处找到):

HTML会自动规范元素内的空格,而忽略前导/尾随空格,并将多余的空格,制表符和换行符转换为单个空格。当Selenium从页面中读取文本时,它将尝试重复此行为,因此您可以忽略HTML中的所有选项卡和换行符,并根据呈现时文本在浏览器中的外观进行断言。为此,我们将所有不可见的空格(包括不间断空格“

 
”)替换为一个空格。所有可见的换行符(
<br>
<p>
<pre>
格式化的新行)都应保留。

我们对HTML Selenese测试用例表的文本使用相同的规范化逻辑。这具有许多优点。首先,您无需查看页面的HTML源代码即可确定您的断言应该是什么;“

&nbsp;
”符号对于最终用户是不可见的,因此您在编写Selenese测试时不必担心它们。(您不需要
&nbsp;
在测试用例中放置标记,以将assertText包含在包含“
&nbsp;
” 的字段上。)您还可以在Selenese
<td>
标记中添加额外的换行符和空格
;因为我们在测试用例上使用与在文本上相同的规范化逻辑,所以我们可以确保断言和提取的文本将完全匹配。

在极少数情况下,当您确实希望/需要在测试用例中插入额外的空格时,这会带来一些问题。例如,您可能需要在如下字段中输入文本:“

foo

”。但是,如果您只是
<td>foo </td>
在Selenese测试用例中编写代码,我们将仅用一个空格替换您的多余空格。

此问题有一个简单的解决方法。我们用Selenese定义了一个变量

${space}
,其值是一个空格。您可以使用
${space}
插入不会自动修剪的空间,如下所示:
<td>foo${space}${space}${space}</td>
。我们还包含了一个变量
${nbsp}
,您可以使用该变量
插入一个不间断的空格。

请注意,XPath 不会 像我们那样规范空格。如果您需要编写类似XPath的代码,

//div[text()="helloworld"]
但链接的HTML确实是“
hello&nbsp;world
”,则需要
&nbsp;
在Selenese测试用例中插入一个真实的“
”以使其匹配,例如:
//div[text()="hello${nbsp}world"]



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号