【发布时间】:2017-04-05 09:47:18
【问题描述】:
我想测试以确保搜索显示正确的结果..
我已经尝试了下面的代码,其中包含 XPath 和 CssSelectors 的许多变体。
IWebElement body = driver.FindElement(By.XPath("//span[@class='CoveoQuerySummary']"));
return (body.Text.Contains(searchTerm));
我总是收到 NullReferenceException 错误。我正在逐步完成它,所以我知道这不是等待问题。
我已经尝试过这种方法,但没有走得很远。 (调试时出现同样的 NullReferenceException 错误。)
IList<IWebElement> all = driver.FindElements(By.CssSelector(".CoveoResultList"));
String[] allText = new String[all.Count];
int i = 0;
foreach (IWebElement element in all)
{
allText[i++] = element.Text;
}
我们将不胜感激!
【问题讨论】:
-
coveo 的搜索结果是使用 Ajax 获取的。因此,您需要考虑完成请求。
-
我正在调试器中逐步完成它...我可能需要考虑这一点 - 但我认为这不是我当前的问题:(
-
webber 是正确的,在向 REST 端点发出 XML HTTP 请求后,搜索结果填充了 DOM。但是,Coveo for Sitecore 搜索页面 DOM 甚至在 JavaScript 代码初始化之前就包含您要查找的 HTML 元素。我知道他们在一个具有
display:none风格的 div 中。也许 Selenium 默认不允许你获取隐藏元素?
标签: c# selenium sitecore coveo