在我們的應用程序中,我有一個場景來點擊特定用戶的編輯圖標。 所以目前我使用下面的代碼:點擊webTable中特定記錄的特定按鈕
下面是編輯按鈕的HTML源代碼:
<tbody id="defaultOverviewTable_data" class="ui-datatable-data ui-widget-content">
<tr class="ui-widget-content ui-datatable-even ui-datatable-selectable" aria-selected="false" role="row" data-rk="5910" data-ri="0">
<tr class="ui-widget-content ui-datatable-odd ui-datatable-selectable" aria-selected="false" role="row" data-rk="1" data-ri="1">
<tr class="ui-widget-content ui-datatable-even ui-datatable-selectable" aria-selected="false" role="row" data-rk="1211" data-ri="2">
<tr class="ui-widget-content ui-datatable-odd ui-datatable-selectable ui-state-hover" aria-selected="false" role="row" data-rk="14" data-ri="3">
<td class="ui-selection-column" style="width:17px;min-width:17px;max-width:17px;" role="gridcell">
<td role="gridcell">HemaSundar</td>
<td style="width:105px;min-width:105px;max-width:105px;" role="gridcell">52A-4EB-52C-294</td>
<td role="gridcell">HemaSundar</td>
<td role="gridcell">HemaSundar</td>
<td role="gridcell">Banking, Admin, System, EuropeanGate, SAP, MBS, Audit, Confidential Payments, iPhone App</td>
<td role="gridcell">
<td class="fillerColumn" style="width:0px;min-width:0px;max-width:0px;" role="gridcell"/>
<td class="iconColumn width_components_4" style="width:160px;min-width:160px;max-width:160px;" role="gridcell">
<div class="columnDiv">
<div id="defaultOverviewTable:3:j_id128" class="ui-outputpanel ui-widget">
<button id="defaultOverviewTable:3:j_id129" class="ewms-ui-icon-superEdit ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-state-hover" type="submit" title="" alt="Edit" onclick="return false;PrimeFaces.addSubmitParam('defaultOverviewForm',{'edit_id':'14'})" name="defaultOverviewTable:3:j_id129" role="button" aria-disabled="false">
<span class="ui-button-text ui-c">ui-button</span>
</button>
</div>
這是我現在使用的代碼:
WebElement overview = driver.findElement(By.id("defaultOverviewTable_data"));// considering the complete webtable
List<WebElement> individualRows = overview.findElements(By.tagName("tr"));//considering invidual user
for (WebElement wb: individualRows)
{
List<WebElement> indWb = wb.findElements(By.tagName("td"));// considering individual columns for individual users
System.out.println(indWb.get(1).getText());
if (indWb.get(1).getText().equalsIgnoreCase(username))// if the username equals the expected
{
List<WebElement> allButtons = wb.findElements(By.tagName("button"));// getting all the buttons of that user
for (WebElement edit: allButtons)
{
System.out.println(edit.getAttribute("title"));
if (edit.getAttribute("title").matches("Edit"))
{
edit.click();// clicking on button where title is Edit.
break;
}
}
break;
}
}
有些時候,在表中有超過300個用戶,那麼如果我想單擊編輯一個用戶在200位置近似。這需要更多的時間。
是否有任何其他方式通過使用XPATH單擊編輯按鈕,其中用戶名列等於一個特定的名稱?
注意:按鈕的ID不是恆定的。
在HTML中放置用戶名和特定名稱? – olyv
在HTML中,「用戶名」是「HemaSundar」 需要單擊「HemaSundar」用戶 – HemaSundar
和特定名稱的編輯圖標(最後3行)? – olyv