我正在使用selenium webdriver来验证表格中的单元格,该单元格仅包含文本,而不包含任何标记,如span,link或i。我只想在td [3]字段3时才返回true,到目前为止我只使用
t = driver.find_element_by_xpath('.//table/tbody//tr/td').text
if not t:
print('no text')
else:
print('yes text only')
print(t)
但它不起作用
<tr>
<td>
<a>link text</a>
<div>name</div>
</td>
<td>
<div>field 2</div>
<!--react text -->
field 2 number
<!-- / react text -->
</td>
<td>
field 3
</td>
<td>
<div>
<button>
<i>...</i>
</button>
</div>
<div>
<div>
text under button
</div>
</div>
</td>
<td>
<div>field 5</div>
</td>
</tr>
//*[@id="app"]/table/tbody/tr[1]/td[1]/a
//*[@id="app"]/table/tbody/tr[1]/td[1]/div
//*[@id="app"]/table/tbody/tr[1]/td[2]/div
//*[@id="app"]/table/tbody/tr[1]/td[3]
//*[@id="app"]/table/tbody/tr[1]/td[4]/div/button/i
//*[@id="app"]/table/tbody/tr[1]/td[4]/div/div/div[1]
//*[@id="app"]/table/tbody/tr[1]/td[5]/div
答案 0 :(得分:0)
检查此代码一次,它可能对您有帮助。
List<WebElement> rows=driver.findElements(By.xpath(".//table/tbody//tr/td"));
for(int i=0;i<rows.size();i++){
t=driver.findElement(By.xpath(".//table/tbody//tr/td["+i+"]").getText();
if("".equals(t)||t==null){
System.out.println("no text");
}else{
System.out.println("yes text only");
System.out.println(t);}