我正在尝试从下面使用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>
下面是我使用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:给定的选择器//table@class='table-striped table-bordered‘/t正文/tr@_gwt_row=’0‘/td1/div/text()要么无效,要么不会导致WebElement。发生了以下错误: InvalidSelectorError: xpath表达式"//table@class='table-striped table-bordered'/tbody/tr@ _gwt_row=‘0’/td1/div/ Text ()“的结果是: object。它应该是一个元素。
发布于 2016-07-24 15:13:35
不能将XPath表达式指向Selenium中的文本节点。在结尾省略/text()部分。
发布于 2021-03-25 09:55:54
我不知道您使用的是哪种语言,但确实需要省略xpath中的/text()。
如果你想要文本,你必须在结尾做一些类似.get或.get()之类的广告
//....tbody/tr[@ __gwt_row='"+i+"']/td[1]/div")).get();https://stackoverflow.com/questions/38553512
复制相似问题