2017-07-03 7 views
-1

ExtJSグリッドパネルを使用しています。このグリッドには20行以上の情報があり、WebdriverIOをテストドライバとして使用してアクティブモードを表すアイコンを各行で検索したいとします。webdriverIOを使用してグリッド内の特定のボタンを検索する方法

テストドライバが最初のアクティブなアイコンを見つけるまで、どのように各行を検索できますか? (注:私がテストしているグリッドはalegra.comでホストされています)。

は、次のHTMLプリントスクリーンを考えてみましょう:

enter image description here

+0

をどうやっているのですか?アクティブなアイコンの行がどのように見えるかを私に教えてください。おそらくあなたを助けることができます。 – tehbeardedone

+0

サルバドールはこれを解決することができましたか、それともまだ助けが必要ですか? ** [this](https://stackoverflow.com/questions/43686566/click-buttons-on-page-until-all-will-be-removed/43705794#43705794)を見てください**私が与えた答えWDIOで 'WebElement'をループします。また、** alegra.com **の表示はどのターゲットですか? ( 'Contactos'、' Inventacts'、 '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のスクリーンショットですが、クラスがあることがわかります。 action-icons以下はボタンの名前です:[name = "Ver detalle"]。これは単なる行のためのものであり、複数のextjsセレクタを使用しています。 –

+0

www.alegra.comでテストアカウントを開くこともできます。 –

+0

スクリーンショットが十分かどうかわかりません。 –

0

これは、あなたが探しているもののためのHTMLを供給することができます私はそれを

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í') 
     }; 
}); 
関連する問題