2016-11-21 8 views
0

を確認します。は、私はXPathを& CssSelectorsの多くのバリエーションを持つ以下のコードを試してみた..私は検索が正しい結果が表示されていることを確認するためにテストしたい</p> <p>をC#セレンとサイトコアでCoveoからの検索結果

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; 
     } 

何かすべての助けていただければ幸いです!

+0

coveoの検索結果は、Ajaxを使用して取得されます。そのため、リクエストの完了を考慮する必要があります。 – webber

+0

私はデバッガでそれを踏んでいます...私はそれを考慮する必要があるかもしれませんが、私の現在の問題だとは思わない:( – Grey

+0

webberはXML HTTPリクエストの後にDOMが検索結果で満たされているしかし、Coveo for Sitecoreの検索ページDOMには、JavaScriptコードで初期化される前でも見た目のHTML要素が含まれています。div: 'display:none'スタイルのdivに含まれていることがわかります。Selenium doesn 'デフォルトで隠し要素を取得できますか? – jflheureux

答えて

1
 var temp = driver.FindElement(By.ClassName("CoveoQuerySummary"), 10); 
     IWebElement body = driver.FindElement(By.ClassName("CoveoResultList")); 
     if (body.Text.Contains(searchtext)) 
      result = true; 
     Assert.IsTrue(result); 

私の大きな問題はページオブジェクトモデルを使用しようとしていたと思います。上記の 'FindElement'呼び出しは、PageObjectファイルに置くと常にNullReferenceExceptionを返します。私はまだ&を知っていますが、これはおそらくリファクタリングが必要であることを知っています。

どのようなヒントもありがとうございます!

関連する問題