gpt4 book ai didi

带有 BrowserTest Slim 夹具插件的 Fitnesse 中的 Xpath 不适用于 ul li

转载 作者:行者123 更新时间:2023-12-03 15:55:17 26 4
gpt4 key购买 nike

我一直在尝试从以下内容中获取第一条错误消息Fitnesse 中的 html 测试使用 BrowserTest Slim 夹具。

<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] 而第二个和第三个返回 [0]

预期结果是Enter your code.

如果我把li完全拿出来

//div[@class='validation-errors']/ul

然后返回

[Enter your code.
Enter your username.
Enter your password.]

所以无论哪种方式,我的测试都会失败,因为它只查找第一条错误消息。我已经在在线 Xpath 测试仪上尝试了 xpath 查询,它似乎按预期工作。

这是一个示例 fitnesse 测试用例:

|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> 的值三者之中。

最佳答案

不幸的是所有<li>元素在 HTML 中获得一个隐式的“值”属性,这就是 BrowserTest 的 value of。正在返回,直到版本 2.5.1。所以你的第二个和第三个 XPaths 是绝对正确的选择你正在寻找的项目。不幸的是,返回的值不是您期望/想要的。如果您在 2.5.1 版本中再次尝试它们,它们应该可以工作。


背景

value of最初设计用于返回输入元素的值(在它们的“值”属性中),并且具有回退行为,因此如果找到的元素具有“值”属性,则其 text()被退回。这在大多数情况下工作得很好,但对 <li> 来说是一种痛苦。即使页面源中没有值属性,它也有一个值属性。在 2.5.1 之前,BrowserTest 没有允许您获取 <li> 文本的方法。 .

关于带有 BrowserTest Slim 夹具插件的 Fitnesse 中的 Xpath 不适用于 ul li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com