我一直在尝试使用BrowserTest Slim 夹具从Fitnesse测试中的以下 html 中获取第一条错误消息。
<div class="validation-errors">
<ul>
<li>Enter your code.</li>
<li>Enter your username.</li>
<li>Enter your password.</li>
</ul>
</div>
我尝试了以下 Xpath:
//div[@class='validation-errors']/ul/li[1]/text()
//div[@class='validation-errors']/ul/li[1]
//div[@class='validation-errors']/ul/li
第一个 xpath 返回[null]
where 第二个和第三个返回[0]
。
预期的结果是Enter your code.
如果我把 li 完全拿出来
//div[@class='validation-errors']/ul
然后它返回
[Enter your code.
Enter your username.
Enter your password.]
因此,无论哪种方式,我的测试都失败了,它只查找第一条错误消息。我已经在在线 Xpath 测试仪上尝试了 xpath 查询,它似乎可以按预期工作。
这是一个示例健身测试用例:
|table template|try to login |
|open |https://my.url.com/login? |
|enter |@{code} |as |Code |
|enter |@{username}|as |Username |
|enter |@{password}|as |Password |
|click |Login |
|$message=|value of |xpath=//div[@class='validation-errors']/ul/li[1]|
|storyboard|browser test|
|try to login |
|code |username |password |message? |
| | | |Enter your code. |
可能是我遗漏了一些明显的东西,但是我试图弄清楚几个小时而没有任何成功,我想我会在这里发布这个,以防有些人有类似的经历,或者可以提供一个解决方案来获得<li>
三个中第一个的价值。