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



C#Selenium Web驱动程序因此,我需要确保我的页面(大约200页)中没有一个包含特定的已知字符串。有没有什么方法可以让我扫描一个页面来寻找这个字符串的存在,如果有,那么就返回那个元素的ElementID和整个字符串?例如,我的来源是:

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

我想在整个页面(<div id="sitewrapper">)上搜索单词"取消",并同时返回cancel_order_lnk取消;取消订单

感谢

您可以使用XPath按文本查找。例如:

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");

我还没有处理过C#绑定,但您可以使用FindElements来获得包含文本的所有元素的列表。毫无疑问,您可以使用@Jarga的xpath。FIndElements的好处是它不会给您抛出异常(至少这是java中发生的情况),尽管如果idvalue为null,则必须使用try-catch来处理getAttribute。如果您对列表进行迭代,则可以使用getText方法获取所有文本。

最新更新