我试图找到一种方法,使用CSS来定位表中的特定单元格,以验证该行是否存在并验证行的单元格内容。
我能够使用Selenium IDE创建类似
的查询css=td:contains('BAD')
'BAD'是一个唯一的客户端代码,因此在此位置验证客户端是否存在该行。
但是,当我将其导出到C#/ nunit / Webdriver时,测试不起作用。
是否有使用我可以使用的CSS的替代方法?
一些表tata的html如下;
<tr class="ng-scope" ng-repeat="client in clients">
<td class="text-left ng-binding">Bart's Ad</td>
<td class="text-left ng-binding">BAD</td>
<td class="text-left">
<span class="ng-scope" ng-repeat="group in client.SecurityGroups">
<a class="label label-info ng-binding" href="#/SecurityGroup/MemberClients /Assistants"> Assistants </a>
</span>
<span class="ng-scope" ng-repeat="group in client.SecurityGroups">
<a class="label label-info ng-binding" href="#/SecurityGroup/MemberClients/Managers"> Managers </a>
</span>
[编辑] 我也用过;
table tr:nth-child(2) td:nth-child(1)
哪个会找到我的单元格,但它不如使用包含客户端特定属性的查询验证客户端的行一样好。
祝你好运 AlmightyJoygasm
答案 0 :(得分:0)
您可以改用xpath:
driver.FindElement(By.XPath("//td[contains(text(), 'BAD')]"));
对于您要尝试匹配的内容,此xpath应该有效:
By.XPath("//td[contains(text(), 'Smith')][1]")
您的xpath找到第一个<td>
,然后尝试匹配文字Smith
。
您要做的是找到包含文本<td>
的{{1}}元素,然后返回第一个实例。