Selenium WebDriver-按内部文本选择表格单元格-C#.NET

Selenium WebDriver-按内部文本选择表格单元格-C#.NET,.net,selenium,webdriver,css-selectors,.net,Selenium,Webdriver,Css Selectors,我试图获取一个或多个包含特定字符串的表单元格。我无法用你的力量完成这件事 var tableCells = table.FindElements(By.CssSelector("td:contains('my partial text')")); 这里使用的正确css选择器文本是什么 我还尝试了以下方法: var tableCells = table.FindElements(By.TagName("td")).Where(tableCell => tableCell.Contain

我试图获取一个或多个包含特定字符串的表单元格。我无法用你的力量完成这件事

var tableCells = table.FindElements(By.CssSelector("td:contains('my partial text')"));  
这里使用的正确css选择器文本是什么

我还尝试了以下方法:

var tableCells = table.FindElements(By.TagName("td")).Where(tableCell => tableCell.Contains("my partial text"));

但是它非常慢。

没有像
:contains()
这样的CSS选择器。这是一个多年前被废弃的提案

原因
table.FindElements(按.TagName(“td”))。其中(tableCell=>tableCell.Contains(“我的部分文本”)
的速度很慢,这至少在一定程度上是显而易见的——您要求WebDriver查找文档中的每个表单元格,然后对它们进行迭代


使用XPath定位器,比如
table.FindElements(By.XPath(//td[contains(,'my partial text')])
,可以更有效地完成这项工作。这正是它看起来的样子-XPath相当于您尝试使用的CSS定位器。

嘿,谢谢您的回复。我听说css选择器比xpath更有效。这是你的印象吗?我是否应该坚持使用css选择器,并且只在没有与本例类似的选择器时使用xpath?“我读到css选择器比xpath更有效。”-使用css选择器而不是xpath的唯一原因是,对于以前的selenium版本(selenium RC)XPath在IE中速度非常慢。目前,您可以自由使用XPath。@IgorKhrol是正确的。基准测试已经证明,XPath和CSS在WebDriver中同样有效。尽管有学究式的风险,我必须指出,IE的某些版本中的XPath选择器仍然比类似的CSS选择器慢得多。这种IE性能差异不限于RC;这也会影响到WebDriver。我知道最好不要就此与@JimEvans争论。没有人比Jim更了解WebDriver IE代码——这是他写的。我读到另一个WebDriver提交者声称CSS和XPath的性能几乎相当,但这些可能只适用于最新的IE版本。