剣道グリッドを使用するアプリケーションの UI テストを作成しようとしています。ブラウザーを駆動するためにセレンを使用していますが、グリッド内の行を選択するのに問題があります。
次のように正しい行を選択できました。
IWebElement matterToSelect = MatterToSelectGrid.FindElement(By.XPath("//td[text()='" + matterId + "']/ancestor::tr"));
単純に .click() を webElement と呼びたいと思っていましたが、うまくいきませんでした。だから私はアクションを構築しようとしました:
new Actions(Driver).MoveToElement(matterToSelect).Click().Build().Perform();
喜びもありません。jsで選択するのはどうですか?
IJavaScriptExecutor js = Driver as IJavaScriptExecutor;
js.ExecuteScript("return $(\"tr[data-uid='" + id + "']\").trigger('click');");
それが機能するかどうかを確認するためだけに、より直接的な選択はどうですか?
js.ExecuteScript("return $(\"#sourceGrid > table:nth-child(1) > tbody:nth-child(3) > tr:nth-child(1) > td:nth-child(1)\").click();");
grrrr はまだ運がありません。次に考えたのは、剣道グリッドには使用できる select() メソッドがあるのではないかということでした。はい、そうですが、私が読んだことから、グリッドを再バインドする必要もありますか? 私が見つけることができるすべての例は、次のようになります。
$("#sourceGrid").data("kendoGrid").select()
しかし、テストからグリッドを再バインドしたくないので、これは試していません。また、すべてのグリッドが Html ヘルパー メソッドを使用してセットアップされ、.dataSource メソッドを使用してアクション メソッドにバインドされるため、data() に何を入れるべきかわかりません。誰かにもっと良い提案がありますか?