【发布时间】:2014-10-19 00:21:21
【问题描述】:
我正在尝试使用以下代码对 selenium2 进行一些单元测试:
private const string TicketName = "Automated Test Ticket";
[Test]
public void EditTicketTest() {
var tableData = driver.FindElement(By.XPath("//td[contains(text(), '" + TicketName + "')]"));
}
测试失败,原因如下:
OpenQA.Selenium.NoSuchElementException : 无法定位元素:{"method":"xpath","selector":"//td[contains(text(), 'Automated Test Ticket')]"}
但是当我查看页面并检查元素时,文本肯定在标签内。是否可能有一些多余的间距或其他可能导致它无法识别文本的东西?
这是 HTML:
<tr data-id="55">
<td>55</td>
<td class="ticket-title">
<span data-original-title="Automated Test Ticket" class="work-on-ticket-note-icon-tickets" data-toggle="tooltip" data-placement="right" data-trigger="hover" title=""></span> <span data-original-title="This is a work on ticket note for a company!" class="work-on-ticket-note-icon-companies" data-toggle="tooltip" data-placement="right" data-trigger="hover" title=""></span> Automated Test Ticket
</td>
<td>Medium</td>
<td>Active</td>
<td>8/25/2014<br> <small>(0 changes)</small></td>
<td><a href="#" class="modal-open" data-modal="company-details-modal" data-url="/companies/details/1"></a></td>
<td>
<strong class="text-danger">None Assigned</strong>
</td>
<td>
<a href="#" class="modal-open btn btn-sm btn-success" data-modal="edit-modal" data-url="/{controller}/edit/55"><span class="glyphicon glyphicon-edit"></span></a>
<a href="#" class="modal-open btn btn-sm btn-info" data-modal="log-modal" data-url="/{controller}/log/55"><span class="glyphicon glyphicon-list-alt"></span></a>
<a href="#" class="modal-open btn btn-sm btn-warning" data-modal="addtime-modal" data-url="/{controller}/addtime/55"><span class="glyphicon glyphicon-time"></span></a>
</td>
</tr>
【问题讨论】:
-
NoSuchElementException通常是因为 1. 您要定位的元素在<frame>或<iframe>中,或者 2. 您要定位的元素尚未显示尝试时在页面上。
标签: c# unit-testing selenium xpath automated-tests