我正在尝试从以下使用XPATH检索值email1,Email2和HT
<table class="table-striped table-bordered" cellspacing="0" style="table-layout: fixed; width: 100%;">
<colgroup>
<tbody>
<tr class="GPEHNV5BGF GPEHNV5BNF" __gwt_subrow="0" __gwt_row="0">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BIF GPEHNV5BOF">
<div __gwt_cell="cell-gwt-uid-515" style="outline-style:none;">email1</div>
</td>
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BOF">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BCG GPEHNV5BOF">
</tr>
<tr class="GPEHNV5BFG" __gwt_subrow="0" __gwt_row="1">
<td class="GPEHNV5BFF GPEHNV5BGG GPEHNV5BIF">
<div __gwt_cell="cell-gwt-uid-515" style="outline-style:none;">Email2</div>
</td>
<td class="GPEHNV5BFF GPEHNV5BGG">
<td class="GPEHNV5BFF GPEHNV5BGG GPEHNV5BCG">
</tr>
<tr class="GPEHNV5BGF" __gwt_subrow="0" __gwt_row="2">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BIF">
<div __gwt_cell="cell-gwt-uid-515" style="outline-style:none;">HT</div>
</td>
<td class="GPEHNV5BFF GPEHNV5BHF">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BCG">
</tr>
&#13;
以下是我的XPATH代码:
int rows=driver.findElements(By.xpath("//table[@class='table-striped table-bordered']/tbody/tr")).size();
List<String> EmailConnectorRoutineList= new ArrayList<String>();
for(int i=0;i<=rows;i++){
String referenceName=null;
referenceName=driver.findElement(By.xpath("//table[@class='table-striped table-bordered']/tbody/tr[@ __gwt_row='"+i+"']/td[1]/div/text()")).getText();
//referenceName=refName.getText();
EmailConnectorRoutineList.add(referenceName);
}
我也尝试过XPATH
//table[@class='table-striped table-bordered']/tbody/tr[@ __gwt_row='"+i+"']/td[1]/div/text()")).getAttribute("value");
显示以下错误:
org.openqa.selenium.InvalidSelectorException:给定的选择器//表[@class =&#39;表条纹表格边界&#39;] / tbody / tr [@ __gwt_row =&#39; 0&#39 ;] / td [1] / div / text()无效或不会产生WebElement。发生以下错误: InvalidSelectorError:xpath表达式的结果&#34; // table [@class =&#39; table-striped table-bordered&#39;] / tbody / tr [@ __gwt_row =&#39; 0&#39;] / TD [1] / DIV /文本()&#34;是:[对象文本]。它应该是一个元素。
答案 0 :(得分:4)
您无法将XPath表达式指向Selenium中的文本节点。最后省略/text()
部分。
答案 1 :(得分:0)
我不知道你使用的是什么语言,但你肯定需要在 xpath 中省略 /text()
并且如果您想要文本,您必须在末尾添加 .get 或 .get() 之类的内容
//....tbody/tr[@ __gwt_row='"+i+"']/td[1]/div")).get();