我想选择此特定文字“需要密码字段”。 ,显然位于<span>
标签内。
<span id="password" class>
::before
"Password field is required."
</span>
我试图使用Id
找到该元素但不幸的是它似乎不起作用。我的代码是这样的:
var emptyPassword = WebBrowser.Current.FindElement(By.Id("password"));
Assert.AreEqual("Password field is required.", emptyPassword);
我也尝试使用Xpath
,但仍然没有运气。 Xpath
看起来像这样:
//*[@id="password"]
有人可以向我解释为什么我无法使用Id或xpath找到元素吗?谢谢:))
答案 0 :(得分:1)
使用您显示的HTML和您显示的代码Selenium应该能够找到您的元素。但是,您没有断言它的 text 是您想要的值,因此执行断言:
Assert.AreEqual("Password field is required.", emptyPassword.Text);
注意最后添加的.Text
,它获取元素的文本。 FindElement
返回的是WebElement
对象,而不是字符串。
答案 1 :(得分:0)
进行基于文本的搜索。
.//*[.='Password field is required.']
。你在这里指向父元素。