Java 将所有单元格值作为字符串从表中删除
我正在尝试从我不久前构建的页面的成员详细信息页面获取一些数据 然而,并不是所有这些页面看起来都一样。它们基本上是在后台创建表,如果存在数据,则添加表,如果不存在,则不添加表 此外,表没有固定的长度,如果某些字段不存在,表可能会更改 这样的Java 将所有单元格值作为字符串从表中删除,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在尝试从我不久前构建的页面的成员详细信息页面获取一些数据 然而,并不是所有这些页面看起来都一样。它们基本上是在后台创建表,如果存在数据,则添加表,如果不存在,则不添加表 此外,表没有固定的长度,如果某些字段不存在,表可能会更改 这样的表体如下所示: <tbody><tr> <td style="width: 115px; vertical-align: top;"> <img src="/Image/1231" a
表体
如下所示:
<tbody><tr>
<td style="width: 115px; vertical-align: top;">
<img src="/Image/1231" alt="" style="width:100px;"><br>
Hamburg<br>
<br>
</td>
<td class="trenner_l" style="vertical-align: text-top;">
<table style="width: 100%;">
<tbody><tr>
<td colspan="4" class="trenner_u"></td>
</tr>
<tr style="height: 8px;">
<td style="vertical-align: middle;">
<img src="/Content/images/floasdfh_ain.png" title="memb" height="16">
</td>
<td style="vertical-align: top;">
vlg. minao
</td>
<td class="trenner_l">
<a href="/memb/DetailSmall/daTB_iframe=true&height=132&width=420" class="thickbox" >
Cate1</a> (21.03.1928)
</td>
<td class="trenner_l" style="vertical-align: top;">
UP, FORUM
</td>
</tr>
<tr style="height: 8px;">
<td style="vertical-align: middle;">
</td>
<td style="vertical-align: top;">
name. minao
</td>
<td class="trenner_l">
<a href="/Verband/DetailSmall/jhkg?TB_iframe=true&height=132&width=420" class="thickbox" >Zone
1</a>
</td>
<td class="trenner_l" style="vertical-align: top;">
Z1, CV
</td>
</tr>
<tr style="height: 8px;">
<td style="vertical-align: middle;">
</td>
<td style="vertical-align: top;">
vlg. meno
</td>
<td class="trenner_l">
<a href="/Verband/DetailSmall/asdfasd?TB_iframe=true&height=132&width=420" class="thickbox" >K.D.St.V.
Zone2</a>
</td>
<td class="trenner_l" style="vertical-align: top;">
Z1, Forum
</td>
</tr>
<tr>
<td colspan="4" class="trenner_o"></td>
</tr>
<tr>
<td colspan="2">
Mobiltelefon privat:
</td>
<td colspan="2" class="trenner_l">
<a href="tel:+22341123124">+22341123124</a>
</td>
</tr>
<tr>
<td colspan="4" class="trenner_o"></td>
</tr>
<tr>
<td colspan="2">email:
</td>
<td colspan="2" class="trenner_l">
<a href="mailto:test.test@gmail.de">test.test@gmail.de</a>
</td>
</tr>
<tr>
<td colspan="4" class="trenner_o"></td>
</tr>
<tr>
<td>
<img src="/Content/images/icons/map.png">
</td>
<td style="vertical-align: top;">
adress:
</td>
<td colspan="2" class="trenner_l" style="vertical-align: top;">
Teststreet 2, 243423 City, State
</td>
</tr>
</tbody></table>
<br>
<div class="TextSmall">online 12.04.2013</div>
</td>
</tr>
</tbody>
然而,我没有得到任何回报。任何关于如何仅从表中获取字符串值的建议,以便我可以将它们保存在字符串变量中
谢谢你的回复 我个人使用Python而不是Java,但一般原则对我来说似乎是一样的:我会使用if/elseif构造分别检查每个字符串,然后将找到的字符串保存到变量中
看看表,问题是这些字段似乎没有唯一标识符,这意味着很难正确识别它们。如果您能够调整生成页面的代码(或让某人为您执行此操作),我将为您希望能够检测其自身类的每种类型的单元格提供相应的代码。是否可以从表
属性中提取字符串?一旦您有了唯一的ID,您应该能够选择包含具有该ID的文本的单元格,而该单元格反过来应该允许您使用.text(即driver.find_element)_by_ID('a').text)从中选择文本
for (int j = 0; j < list.size(); j++) {
String link = list.get(i).getLinkToGVPage();
openSite(link);
//
List<WebElement> adresse = driver.findElements(By.xpath("//*[@id=\"ui-id-4\"]/table/tbody/tr/td"));
for (int k = 0; k < adresse.size(); k++) {
System.out.println(adresse.get(k).getText());
}
WebElement adresse = driver.findElement(By.xpath("//*[@id=\"ui-id-4\"]/table/tbody/tr[6]/td"));
System.out.println(adresse.getText());
} catch(Exception e) {
System.out.println("exceptions");
e.printStackTrace();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}