我正在使用ExtJS网格面板。此网格有超过20行的信息,我希望在每行中搜索代表活动模式的图标,并将WebdriverIO用作测试驱动程序。如何使用webdriverIO搜索网格中的特定按钮
如何在每行中搜索,直到测试驱动程序找到第一个活动图标? (注:我正在测试的网格托管在alegra.com)。
考虑下面的HTML打印屏幕:
我正在使用ExtJS网格面板。此网格有超过20行的信息,我希望在每行中搜索代表活动模式的图标,并将WebdriverIO用作测试驱动程序。如何使用webdriverIO搜索网格中的特定按钮
如何在每行中搜索,直到测试驱动程序找到第一个活动图标? (注:我正在测试的网格托管在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];
}
嗨,男人,这是选择器的屏幕截图---> http://take.ms/bqCwT如果你可以看到有这个类。动作图标和下面是按钮的名称:[name =“Ver detalle”]。这只是一行,并且有多个使用extjs选择器。 –
如果你想要,你也可以在www.alegra.com上打开一个测试账户 –
我不知道截图是否足够? –
这是我做的
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?给我一个带有活动图标的行的样子,我可以帮你解决问题。 – tehbeardedone
萨尔瓦多你是否设法解决这个问题,或者你还需要帮助?看看** [这](https://stackoverflow.com/questions/43686566/click-buttons-on-page-until-all-will-be-removed/43705794#43705794)**答案我给了循环浏览WDIO中的WebElement。另外,您定位的是哪个** alegra.com **视图? ('Contactos','Inventarios','Bancos'等) – iamdanchiv
嗨@iamdanchiv男士,仍然需要帮助,我现在正瞄准这个模块https://app.alegra.com/invoice,如果可以的话看到有一排网格,每一行管理一些动作图标,我需要的是在网格中找到一个活动图标,然后点击它。 –