我想检索包含已知字符串的ElementID

时间:2015-02-09 17:09:29

标签: c# selenium selenium-webdriver

C#Selenium Webdriver 所以我需要确保我的所有页面(大约200页)都不包含特定的已知字符串。有没有什么方法可以扫描页面是否存在此字符串,如果确实如此,则返回该元素的ElementID和整个字符串? 例如我的来源就像:

<a id="cancel_order_lnkCancel">Cancel Order</a>

我想搜索“取消”这个词。在整个页面(<div id="sitewrapper">)并返回两者 cancel_order_lnkCancel;取消订单

由于

2 个答案:

答案 0 :(得分:1)

您可以使用XPath按文本查找。 e.g:

var element = driver.FindElement(By.XPath(string.Format("//*[contains(text(), '{0}')]", value)));

value是您要搜索的字符串。

然后获取元素的标记和内容:

var html = element.GetAttribute("outerHTML");
var text = element.Text;

var text = element.GetAttribute("innerHTML");

答案 1 :(得分:0)

我还没有使用C#绑定,但您可以使用FindElements来获取包含该文本的所有元素的列表。毫无疑问,你可以使用@Jarga的xpath。 FIndElements的好处是它不会抛出异常(至少这是java中发生的事情)尽管你必须使用try catch来处理getAttribute,如果你为{{1}得到null } value。如果您遍历列表,则可以使用id方法获取所有文本。