在C#中使用Selenium通过局部ID查找元素
我正在尝试查找具有动态生成ID的元素。字符串的最后一部分是常量(“
ReportViewer_fixedTable”),因此我可以使用它来定位元素。我试图在XPath中使用正则表达式:
targetElement = driver.FindElement( By.XPath("//table[regx:match(@id, "ReportViewer_fixedTable")]"));
并通过CssSelector定位:
targetElement = driver.FindElement( By.CssSelector("table[id$='ReportViewer_fixedTable']"));
都不行。任何建议,将不胜感激。
回答:
那是因为需要修改css选择器,而您几乎就在那里…
driver.FindElement(By.CssSelector("table[id*='ReportViewer_fixedTable']"))`
从https://saucelabs.com/blog/selenium-tips-css-selectors-in-selenium-
demystified中:
css=a[id^='id_prefix_']
以id
开头的文本链接id_prefix_
。
css=a[id$='_id_sufix']
以开头的链接,id
其文本为_id_sufix
。
css=a[id*='id_pattern']
与的链接id
包含文本id_pattern
。
您正在使用一个后缀,我假设该后缀不是您应该使用的部分链接文本标识符(除非我看到了您的html,这意味着下次尝试显示您的html)。*=
在任何情况下都是可靠的。
以上是 在C#中使用Selenium通过局部ID查找元素 的全部内容, 来源链接: utcz.com/qa/412547.html