C#Selenium Webdriver 所以我需要确保我的所有页面(大约200页)都不包含特定的已知字符串。有没有什么方法可以扫描页面是否存在此字符串,如果确实如此,则返回该元素的ElementID和整个字符串? 例如我的来源就像:
<a id="cancel_order_lnkCancel">Cancel Order</a>
我想搜索“取消”这个词。在整个页面(<div id="sitewrapper">
)并返回两者
cancel_order_lnkCancel;取消订单
由于
答案 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
方法获取所有文本。