我需要按类及其包含的文本查找元素。我试过这样但没有任何效果,请帮忙(对我来说最好选择使用css,但xpath也可以):
Driver.FindElement(By.XPath("//td[contains(@class,'TestClass') and .//text()='TestText']"))
Driver.FindElement(By.CssSelector("td.TestClass:contains('TestText')"))
元素:
<td class="TestClass"> TestText</td>
<td class="TestClass"> TestText1</td>
<td class="TestClass"> TestText2</td>...
答案 0 :(得分:3)
您可以尝试使用以下XPATH表达式:
//td[@class='TestClass'][text()='TestText']
使用FindElements代替FindElement。您可以找到所有td元素,然后循环浏览它们以查找所需的文本。
答案 1 :(得分:1)
在xpath下方使用: -
//td[text()=' TestText']
OR
//td[@class='TestClass' and text()=' TestText']
希望它会对你有所帮助:)。
答案 2 :(得分:1)
在C#中使用 CSS Selector 和LINQ的不同方法:
var elements = WebDriver.FindElements(By.CssSelector("td.TestClass'"]));
var theElement = elements.FirstOrDefault( e => e.Text.Contains("TestText1"));