asp.net-mvc-4 - 通过 selenium web 驱动程序的 Kendo UI 网格选择行

标签 asp.net-mvc-4 kendo-ui selenium-webdriver

我正在尝试为使用剑道网格的应用程序编写 UI 测试。我正在使用 selenium 来驱动浏览器,但我无法在网格中选择一行。

我已经能够像这样选择正确的行:

IWebElement matterToSelect = MatterToSelectGrid.FindElement(By.XPath("//td[text()='" + matterId + "']/ancestor::tr"));

我希望简单地调用 .click() webElement,但这不起作用。所以我尝试建立一个 Action :
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() 方法?好吧,似乎是的,但是从我读到的内容中,我还需要重新绑定(bind)网格?我能找到的所有例子都是这样的:
$("#sourceGrid").data("kendoGrid").select()

但我不想从我的测试中重新绑定(bind)网格,所以我没有尝试过。另外,我不确定 data() 中应该包含什么,因为所有网格都是使用 Html 辅助方法设置的,并使用 .dataSource 方法绑定(bind)到操作方法。有没有人有更好的建议?

最佳答案

好吧,我最后是这样做的:

IJavaScriptExecutor js = Driver as IJavaScriptExecutor;
            js.ExecuteScript(String.Format("return $('td:contains(\"{0}\")').parent().addClass('k-state-selected');", matterId));

关于asp.net-mvc-4 - 通过 selenium web 驱动程序的 Kendo UI 网格选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013715/

相关文章:

Javascript字符计数器,将回车符计为2个字符

javascript - 将复选框列添加到剑道网格

javascript - 网格中的拆分按钮显示在行后面 - Kendo UI

java - 如何使用 Selenium(Java) 更改网页中的语言?

node.js - Mocha + SeleniumJS + PhantomJS 检索超时

jquery - 动态生成 HTML 后显示器发出铃声

css - twitter bootstrap 并排对齐表格

kendo-ui - 剑道日期选择器 : Prevent closing picker when clicking a date

javascript - 是否可以使用专用代码将 .p12 或 .pfx 文件导入到 Selenium Webdriver 中?

c# - 尝试将 MEF 与 MVC Controller 一起使用时出现 CompositionContractMismatchException