Javascript 如何使用webdriverIO搜索网格中的特定按钮

Javascript 如何使用webdriverIO搜索网格中的特定按钮,javascript,selenium-webdriver,extjs,webdriver-io,Javascript,Selenium Webdriver,Extjs,Webdriver Io,我正在使用一个网格面板。这个网格有20多行信息,我想用WebDrivero作为测试驱动程序,在每行中搜索表示活动模式的图标 如何在每行中搜索,直到测试驱动程序找到第一个活动图标?(注意:我正在测试的网格托管在alegra.com上) 考虑以下HTML打印屏幕: 如果不知道您使用的是哪一个定位器,就很难准确地知道如何操作,但是如果您首先获得一个行列表,然后过滤它们并获取第一个匹配项,那么它应该可以完成您要查找的操作 public static get rows() { return browser

我正在使用一个网格面板。这个网格有20多行信息,我想用WebDrivero作为测试驱动程序,在每行中搜索表示活动模式的图标

如何在每行中搜索,直到测试驱动程序找到第一个活动图标?(注意:我正在测试的网格托管在alegra.com上)

考虑以下HTML打印屏幕:


如果不知道您使用的是哪一个定位器,就很难准确地知道如何操作,但是如果您首先获得一个行列表,然后过滤它们并获取第一个匹配项,那么它应该可以完成您要查找的操作

public static get rows() { return browser.elements('#someTableId > table > tbody > tr'); }

public static getFirstMatch() {
    return this.rows.value.filter((row: WebdriverIO.Element) =>
        browser.elementIdElement(row.ELEMENT, 'someLocator').value)[0];
}
我就是这样做的

var icon_type = 'delete';

it('Se elimina una factura', function(){        
        //rellenamos el array de elementos del grid
    var elements = browser.getAttribute('#gridInvoices #gridview-1047-table tbody tr .action-icons img:nth-child(7)','class');
        //Busca la primera coincidencia en el array con type
    var row_num = elements.indexOf(icon_type);

    if(row_num === -1){
        throw new Error('No se encontraron botones activos del tipo "Eliminar" en todo el grid' )
    }else{
        $$('#gridInvoices #gridview-1047-table tbody tr')[row_num].click('.action-icons [title="Eliminar"]');
        browser.click('=Sí')
        };  
});

你能提供你正在寻找的html吗?请告诉我带有活动图标的行的外观,我可能可以帮助您解决问题。您是否设法解决了此问题,或者您仍然需要帮助?看看我在WDIO中循环通过
WebElement
s给出的答案。另外,您的目标是哪个alegra.com视图?(
Contactos
Inventarios
Bancos
,等等)Hi-men@iamdancehiv,仍然需要帮助,我现在的目标是这个模块,如果你可以看到有一个网格,其中有一些行,每一行管理一些动作图标,我需要的是在该网格中找到一个活动图标,然后单击它。确定,我一拿到笔记本电脑就去看看。:)嘿@iamdanciv,我们可以用这个测试做什么?嗨,伙计们,这是选择器的屏幕截图--->如果你能看到有类。动作图标,下面是按钮的名称:[name=“Ver detalle”]。这只是一行,有不止一行使用extjs选择器。如果你愿意,你也可以在www.alegra.com上打开一个测试帐户。我不知道截图是否足够?你能给我解释一下getFirstMatch函数吗,我不清楚是的,函数将在表中的所有行中查找与您要查找的内容匹配的元素,并返回找到的第一个匹配项。这就是末尾的索引签名([0])的作用。在您的情况下,您希望该行具有活动图标,以便将
someLocator
替换为标识该图标的任何选择器。