2017-07-03 64 views
-1

我正在使用ExtJS网格面板。此网格有超过20行的信息,我希望在每行中搜索代表活动模式的图标,并将WebdriverIO用作测试驱动程序。如何使用webdriverIO搜索网格中的特定按钮

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

考虑下面的HTML打印屏幕:

enter image description here

+0

您可以提供为你在找什么的HTML?给我一个带有活动图标的行的样子,我可以帮你解决问题。 – tehbeardedone

+0

萨尔瓦多你是否设法解决这个问题,或者你还需要帮助?看看** [这](https://stackoverflow.com/questions/43686566/click-buttons-on-page-until-all-will-be-removed/43705794#43705794)**答案我给了循环浏览WDIO中的WebElement。另外,您定位的是哪个** alegra.com **视图? ('Contactos','Inventarios','Bancos'等) – iamdanchiv

+0

嗨@iamdanchiv男士,仍然需要帮助,我现在正瞄准这个模块https://app.alegra.com/invoice,如果可以的话看到有一排网格,每一行管理一些动作图标,我需要的是在网格中找到一个活动图标,然后点击它。 –

回答

0

很难确切地知道如何做到这一点不知道您所使用的定位,但如果你第一次得到行的列表,然后过滤它们,并抓住第一场比赛,它应该做你正在寻找的东西。

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]; 
} 
+0

嗨,男人,这是选择器的屏幕截图---> http://take.ms/bqCwT如果你可以看到有这个类。动作图标和下面是按钮的名称:[name =“Ver detalle”]。这只是一行,并且有多个使用extjs选择器。 –

+0

如果你想要,你也可以在www.alegra.com上打开一个测试账户 –

+0

我不知道截图是否足够? –

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í') 
     }; 
}); 
相关问题