我正在开发一个有Slickgrid的AngularJS应用程序。我正在尝试编写测试并遇到问题。当我使用Selenium时,我可以让它点击其中一个单元格,但sendkeys功能似乎没有做任何事情,即使我可以看到光标在单元格中闪烁,也没有输入任何文本。
即使我在Selenium IDE中记录我的动作,也不会记录在单元格中输入文本的操作。
我尝试在chrome中打开JavaScript控制台并编写一些JavaScript以在其中一个单元格中输入一些文本并取得进展(我不知道JavaScript)。
我可以在Chrome控制台中使用哪些JavaScript在其中一个单元格中输入文字?硒对SlickGrid不起作用吗?
我不确定这里最好的方法是什么。
由于
答案 0 :(得分:0)
您似乎一下子要问两件事。我将尽力强调我没有Selenium的经验,但我可以尝试回答JavaScript部分。
您没有太多关于实际SlickGrid设置的信息,因此我的问题解决方案基于官方SlickGrid: Making it editable示例,您可以尝试使用这些方法,例如使用JavaScript ScratchPad
我将分享我找到的两种方法,因为我不知道您可以将哪一种方法集成到Selenium设置中。
方法1 - 通过SlickGrid API:
var row = 0;
var cell = 0;
var test_input = 'Your input';
if(grid.canCellBeActive(row, cell)) {
grid.setActiveCell(row, cell);
grid.editActiveCell();
var activeCell = $(grid.getActiveCellNode());
if(typeof activeCell !== 'undefined') {
activeCell.children(0).val(test_input);
grid.gotoCell(row, cell);
}
}
方法2 - 通过设置网格的data source。
在这种情况下,它是一个JavaScript数组对象:
var row = 0;
var test_input = 'Your input';
data[row].title = test_input;
grid.invalidateRow(row);
grid.render();
这两种方法都改变了给定的单元格数据,主要区别在于使用第二种方法需要依赖于要设置的字段名称 property 。