我一直在互联网上寻找答案,似乎没有运气。
这里的问题是我尝试找到以下没有为表定义id的动态表:
<div class="modal-body">
<table class="table table-striped data-table">
<thead>
<tr>
<th dt-bSortable="false">Name</th>
<th dt-bSortable="false">ID</th>
<th dt-bSortable="false">Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>NameA</td>
<td>111</td>
<td>nameA@test.com</td>
</tr>
<tr>
<td>NameB</td>
<td>222</td>
<td>nameB@test.com</td>
</tr>
...
我需要的是基于给定的ID,我可以找到相应的名称和电子邮件。但首先,我应该找到桌子。我尝试了以下方法,但它们都没有工作:
WebElement table = driver.findElement(By.className("table table-striped data-table"));
WebElement table = driver.findElement(By.xpath("//table[@class='table table-striped data-table']"));
WebElement table = driver.findElement(By.cssSelector("table.table-striped"));
我还尝试通过以下方式直接获取所有行:
List<WebElement> rows = driver.findElements(By.xpath("//table[@class='table table-striped data-table']/tbody/tr"));
但rows.isEmpty()
总是返回true。
请帮我解决这个问题。提前感谢任何建议。
答案 0 :(得分:0)
我原本预计
WebElement table = driver.findElement(By.cssSelector("table.table-striped"));
工作,因为这意味着'找到带有table-striped类的表元素'。但是,如果你打算'找到带有类表和class table-striped'的元素(看起来你是基于你的其他尝试),那么命令就是
WebElement table = driver.findElement(By.cssSelector(".table.table-striped"));
请注意额外的'。'。