2015-02-03 6 views
3

Я хочу нажать AutoTestSKU таблицы ниже. Как мне это сделать, используя selenium Java?Как нажимать на элемент <Td>

<tr class="poslist-item" onclick="callManage(this, 'a[id$=linkManageProduct]')"> 
<tr class="poslist-item" onclick="callManage(this, 'a[id$=linkManageProduct]')"> 
<tr class="poslist-item" onclick="callManage(this, 'a[id$=linkManageProduct]')"> 
    <td> 
     <input id="listProductform:productItemRepeat:2:checkbox" class="toggle-checkbox" type="checkbox" onclick="event.stopPropagation();" value="true" name="listProductform:productItemRepeat:2:checkbox"> 
    </td> 
    <td> Cash Withdraw </td> 
    <td>AutoTestSKU</td> 
    <td>AutoProductName</td> 
    <td> 1 </td> 
    <td> 999 </td> 
    <td> 0 </td> 
    <td> 0 </td> 
    <td> 
    <td> 
</tr> 
</tbody> 
</table> 
</div> 
</div> 
<div class="row-fluid row-break"> 

ответ

2

Я поеду с xpath на основе текста. Я также обнаружил, что проблема с загрузкой элемента очень часто встречается у webtables, поэтому обязательно используйте explicit. См. this для реализации.

//td[.='AutoTestSKU'] 

. дает возможность непосредственно указывать на родителя в иерархии html

Если текст содержит какие-либо пробелы он не будет работать. В этом случае вы можете использовать функцию xpath .

//td[contains(text(),'AutoTestSKU')] 


WebElement myDynamicElement = (new WebDriverWait(driver, 10)) 
    .until(ExpectedConditions.presenceOfElementLocated(By.xpath("//td[contains(text(),'AutoTestSKU')]"))); 
myDynamicElement.click(); 
Смежные вопросы