我有一个表格,我有几列,但我想要做的是找到某个实体的编辑链接。 实体名称和编辑链接标识如下:
@FindBy(css = "div#entity_data_manager_table_cell_name")
public List<WebElement> entityNameList;
@FindBy(css = "button#entity_data_manager_table_item_action_edit")
public List<WebElement> entityEditLinkList;
识别与某个实体名称对应的编辑链接的最佳方法是什么?
答案 0 :(得分:0)
解决方案1:
您可以在xpath
中使用前向轴或祖先。假设有tr
包含您的实体和该实体的编辑按钮,您可以这样做:
//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']
这可能意味着你需要一个动态选择器,而不是@FindBy
,所以这样的东西:
protected WebElement getEntityEditButtonElement(string entity)
{
return driver.findElement(By.xpath(/*xpath from above plugging in the identifiable text*/));
}
解决方案2:
找到您正在寻找的实体所在的entityNameList
,并假设它们匹配,请在entityEditLinkList
中使用该索引点击正确的按钮。这有点不太精确,所以我不推荐它。