我正在尝试学习正确使用定位器来查找嵌套元素。使用w3school的修改表(用于说明海豚),什么是收集属于tbody的行元素的好方法(而排除属于thead的行元素)?
我在想:
element(by.tagName('tbody')).element.all(by.tagName('tr'))
这不起作用,因为子定位器不能是elementArrayFinder(如果我正确理解的话)。
是否可以写:
element.all(by.css('tbody tr')) ?
(经过漫长的一天,我会在明天的最后一次尝试)。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h2>HTML Table</h2>
<table>
<thead>
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<thead>
<tbody>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</tbody>
</table>
</body>
</html>
答案 0 :(得分:1)
对于Protrator中的嵌套选择,您必须像以前一样直接对所有方法调用
element(by.tagName('tbody')).all(by.tagName('tr'))
即使您可以用来选择这样的深子,
element(by.tagName('tbody')).all(by.tagName('td'))
是的。 by.css('tbody tr')
用于通过CSS选择器查找元素。在element.all()中使用它们将返回与css选择器匹配的所有元素。
element.all(by.css('tbody tr'));
由于它是直系亲子,所以您也可以尝试一下,
element.all(by.css('tbody>tr'));