我们如何使用它包含的值获取表格(在网页中)。
假设一张3 * 3的表格。在该单元格(2,3)中,单元格文本是"测试"。那么如何使用单元格文本"测试"。
找到行号= 2硒2.53.1 Java的8
这是xpath
//表[2] / tbody的/ TR / TD [2] /表[2] / tbody的/ TR [7] / TD / DIV [2] /表/ TBODY /的 TR [1] / TD [1] / DIV /一个/字体
其中粗体tr(此处为tr [1])是我想要动态更改的行&文本在粗体td(这里是td [1])
内我的HTML代码是:
<html>
<head></head>
<body>
<form name="fm" method="post">
<table>
<!-- --Some data--- -->
</table>
<table width="100%" height="100%" border="0" >
<tr valign="top" >
<td width="200" height="100%" rowspan="3" align="center" >
<p></p>
<table width="89%" height="270" border="0">
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<!-- --Some data--- -->
<tr></tr>
<tr></tr>
<tr></tr>
<tr>
<td><table width="100%" height="71" border="0" align="right">
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table></td>
</tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<!-- --Some data--- -->
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
<p></p>
</td>
<td width="622" height="30" colspan="3" align="left" valign="top">
<table width="100%" height="40" align="center">
<tr><!-- --Some data--- --></tr>
</table>
<table width="476" height="110" align="center">
<tr></tr>
<tr></tr>
<tr></tr>
<!-- --Some data--- -->
<tr></tr>
<tr></tr>
<tr></tr>
<tr>
<td height="22" colspan="3">
<div align="left">
<table width="469" border="1">
<tr bgcolor="#006291">
<td width="81" bgcolor="#006291"><div align="center">SlNo.</div></td>
<td width="82" bgcolor="#006291"><div align="center">Code</div></td>
<td width="300" bgcolor="#006291"><div align="center">Name</div></td>
</tr>
</table>
</div>
<div align="left" style="width:465px;Height:150px;">
<table width="465" bgcolor="#FFFFFF" border="1">
<tr bordercolor="#006291" bgcolor='#FFEADF' >
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=1"><font color="#006291" size="3" >1</font></a></div></td>
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=1"><font color="#006291" size="3" >01</font></a></div></td>
<td width="300" height='5' valign="top"><div align="center"><a href="t.php?Tcode=1"><font color="#006291" size="3" >tvm1</font></a></div></td>
</tr>
<tr bordercolor="#006291" bgcolor='#F1F8FC' >
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=2"><font color="#006291" size="3" >2</font></a></div></td>
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=2"><font color="#006291" size="3" >02</font></a></div></td>
<td width="300" height='5' valign="top"><div align="center"><a href="t.php?Tcode=2"><font color="#006291" size="3" >tvm2</font></a></div></td>
</tr>
<tr bordercolor="#006291" bgcolor='#FFEADF' >
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=3"><font color="#006291" size="3" >3</font></a></div></td>
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=3"><font color="#006291" size="3" >03</font></a></div></td>
<td width="300" height='5' valign="top"><div align="center"><a href="t.php?Tcode=3"><font color="#006291" size="3" >tvm3</font></a></div></td>
</tr>
<tr bordercolor="#006291" bgcolor='#F1F8FC' >
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=4"><font color="#006291" size="3" >4</font></a></div></td>
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=4"><font color="#006291" size="3" >04</font></a></div></td>
<td width="300" height='5' valign="top"><div align="center"><a href="t.php?Tcode=4"><font color="#006291" size="3" >tvm4</font></a></div></td>
</tr>
<tr bordercolor="#006291" bgcolor='#FFEADF' >
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=66"><font color="#006291" size="3" >5</font></a></div></td>
<td width="81" height='5' valign="top"><div align="center"><a href="t.php?Tcode=66"><font color="#006291" size="3" >10</font></a></div></td>
<td width="300" height='5' valign="top"><div align="center"><a href="t.php?Tcode=66"><font color="#006291" size="3" >tvm5</font></a></div></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:1)
&#34;计数(//表[@id =&#39; TABLEID&#39;] // TD [=&#39;测试&#39;。] /父:: TR /前同辈: :tr)+ 1&#34;
放入你自己的表格标识符......取决于它是一个没有rowpans和colspans的简单表格。
答案 1 :(得分:0)
如果您想根据文字点击<td>
,请尝试以下xpath
: -
.//td[child::a/font[text() = 'your text hare']]
或者,如果您根据文字点击<a>
内的<td>
,请尝试以下xpath
: -
.//td/a[child::font[text() = 'your text hare']]
或者你想要click on table cell using their row and column index follow this link
答案 2 :(得分:0)
我尝试将所有行的列数据捕获到List中(观察下面的&#39; rowList&#39;的xpath,没有给出最终&#39; tr&#39;获取列数据的数字所有行),并使用foreach得到包含所需文本的行的索引。
必须更改&#39; expRowValue&#39;中的值使用不同的数据。
public class Table {
WebDriver driver;
By rowList = By.xpath("html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td[1]/table[1]/tbody/tr[3]/td/table/tbody/tr/td[2]");
@Test
public void f() {
String expRowValue="$513";
System.setProperty("webdriver.chrome.driver", "C:/Users/dell/Downloads/chromedriver/chromedriver.exe");
driver = new ChromeDriver();
driver.get("http://newtours.demoaut.com/");
driver.manage().window().maximize();
List<WebElement>rowsData = driver.findElements(rowList);
int k=1;
for (WebElement rowValue: rowsData) {
if (rowValue.getText().equals(expRowValue)){
System.out.println("ROw Index::" + k);
}
k++;
}
}
}