2016-06-27 5 views
0

Я пытался найти способ проверить флажки в таблице сетки. Обычно они определяются как type = 'checkbox'. Поэтому мне сложно реализовать с помощью webDriver, чтобы проверить флажки, так как они находятся в тегах.Как проверить флажки с помощью Selenium Java WebDriver?

Образец кода HTML приведен ниже.

<tbody id="gridview-2345-body"> 
 
\t <tr id="gridview-2345-record-/DNA/Study1_HS.xml" class="x4-grid-row x4-grid-data-row x4-grid-row-selected" data-boundview="gridview-1270" role="row"> 
 
\t \t <td id="ext4-ext-gen1234" class="x4-grid-cell x4-grid-td" role="gridcell"> 
 
\t \t \t <div class="x4-grid-cell-inner " style="text-align:left;" unselectable="on"> 
 
\t \t \t \t <div class="x4-grid-row-checker"/> 
 
\t \t \t </div> 
 
\t \t </td> 
 
\t \t <td id="ext4-ext-1235" class="x4-grid-cell x4-grid-td" role="gridcell"> 
 
\t \t \t <div class="x4-grid-cell-inner " style="text-align:left;" unselectable="on"> 
 
\t \t \t \t <span id="ext4-icon1568" class="fa fa-file-code-o labkey-file-icon"/> 
 
\t \t \t </div> 
 
\t \t </td> 
 
\t \t <td id="ext4-ext-gen1236" class="x4-grid-cell x4-grid-td" role="gridcell"> 
 
\t \t \t <div class="x4-grid-cell-inner " style="text-align:left;" unselectable="on"> 
 
\t \t \t \t <div width="100%" height="16px"> 
 
\t \t \t \t \t <div style="float: left;"/> 
 
\t \t \t \t \t <div style="padding-left: 8px; white-space:normal !important;"> 
 
\t \t \t \t \t \t <span style="display: inline-block; white-space: nowrap;">Study1_HS.xml</span> 
 
\t \t \t \t \t </div> 
 
\t \t \t \t </div> 
 
\t \t \t </div> 
 
\t \t </td> 
 
\t </tr> 
 
</tbody>

Я попытался с помощью 'содержит' в XPath

driver.findElement(By.xpath("//*[contains(@id, 'Study1_HS.xml')]/td[1]/div/div")).click(); 
+0

Его чек, но я видел несколько других сообщений с помощью мыши(), так что я попытался с помощью нажмите(). Как только я поставлю флажок в строке таблицы. Мне нужно нажать еще одну кнопку. Но на данный момент я просто пытаюсь проверить флажок. – shockwave

+0

Произошло ли какое-либо исключение или что-то еще, когда вы используете '.click()' .. –

+0

@SaurabhGaur - Он дает это сообщение "ОШИБКА: Не удается найти элемент: xpath = // * [содержит (@id, 'Study1_HS .xml ')] Для получения документации по этой ошибке, пожалуйста, посетите: http://seleniumhq.org/exceptions/no_such_element.html " – shockwave

ответ

0

Я задаюсь вопросом ... поскольку TR содержит изменение класса, когда флажок установлен, может быть, щелчок по TR вызовет проверку. Попробуйте это и посмотрите.

String searchText = "Study1_HS.xml"; 
List<WebElement> rows = driver.findElements(By.tagName("tr")); 
for (WebElement row : rows) 
{ 
    if (row.getText().contains(searchText)) 
    { 
     row.click(); 
     break; 
    } 
} 
+0

Если это не работает ... щелкните правой кнопкой мыши на флажке и проверьте элемент. Какой элемент появляется? – JeffC