如何在span标签Selenium中使用Id或Xpath查找元素

时间:2014-11-13 13:34:19

标签: c# selenium selenium-webdriver webdriver

我想选择此特定文字“需要密码字段”。 ,显然位于<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找到元素吗?谢谢:))

2 个答案:

答案 0 :(得分:1)

使用您显示的HTML和您显示的代码Selenium应该能够找到您的元素。但是,您没有断言它的 text 是您想要的值,因此执行断言:

Assert.AreEqual("Password field is required.", emptyPassword.Text);

注意最后添加的.Text,它获取元素的文本。 FindElement返回的是WebElement对象,而不是字符串。

答案 1 :(得分:0)

进行基于文本的搜索。

.//*[.='Password field is required.']

。你在这里指向父元素。