我正在使用 Selenium::Remote::Driver
对不同的浏览器进行一些测试模块。
我想检查我是否在我的网站列表中找到了某个项目,该列表来自 JavaScript 框架(创建网格)。对于这种情况,我必须使用 Selenium::Remote::Driver
允许的 JavaScript 片段。
我写了下面的代码
$script = q{
var paramProgramName = arguments[0];
var list = $('#c-list').dxList('instance');
var items = list.option('items');
var index = items.findIndex(function(el){ return el.name == paramProgramName; });
list.selectItem(index);
return ;
};
$driver->execute_script($script, $programName);
它适用于 Chrome 和 Firefox,但不适用于 Internet Explorer,因为 findIndex
方法仅受版本 12 及更高版本支持。由于某种原因我必须使用版本 11。
我可以采取什么不同的措施来从每个浏览器获取索引?
最佳答案
So my question is how can i do differently to get my index for every browser ?
您至少有三个选择:
垫片
Array#findIndex
; MDN有一个可以使用的 shim/polyfill。使用 IE11 具有的其他内容,例如
Array#some
(甚至 IE9 也有):var index = -1; items.some(function(el, i) { if (el.name == paramProgramName) { index = i; return true; } });
使用 IE8 也有的其他内容,例如
for
:var index = -1; for (var i = 0; i < items.length; ++i) { if (items[i].name == paramProgramName) { index = i; break; } }
关于javascript - Internet Explorer 的 findIndex() 方法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37698996/