解決方法1:
あなたはxpath
に前方軸や祖先を使用することができます。
前方
//div[@id='entity_data_manager_table_cell_name'][contains(text(),'some identifying text)]/ancestor::tr//button[@id='entity_data_manager_table_item_action_edit']
軸バージョン:
//tr[descendant::div[@id='entity_data_manager_table_cell_name'][contains(text(),'some identifying text)]]//button[@id='entity_data_manager_table_item_action_edit']
これはおそらく、あなたが動的なセレクタをしたいわけではなくなりますが、この操作を行うことができ、そのエンティティのためのエンティティおよび編集ボタンが含まれていtr
があると仮定すると、 @FindBy
ので、このような何か:
protected WebElement getEntityEditButtonElement(string entity)
{
return driver.findElement(By.xpath(/*xpath from above plugging in the identifiable text*/));
}
解決方法2:
あなたが探しているエンティティがentityNameList
にあり、それらが一致すると仮定して、entityEditLinkList
のインデックスを使用して正しいボタンをクリックします。これは少し正確ではないので、私はそれをお勧めしません。
'html'を投稿できますか?このような状況への一般的なアプローチは、xpathを使用して行項目を検索し、基本的にツリーをバックアップして行を取得し、別の列に存在する関連する編集ボタンを取得することです。 – mrfreester