我无法访问table2中的webtable元素,请参阅下面的页面源:
<table id="table1">
<tr class="head">
<td class="left" colspan="2">
<!--PAGE LINKS-->
</td>
</tr>
<tr>
<td class="left_link">
<h1>
<a name="nav_home" href="index.html" id="home_link" class="home">HOME</a><br>
<a name="nav_adopt" href="adoption.html" id="adoption_link">ADOPTION</a><br>
<a name="nav_about" href="about.html" id="about_link">ABOUT</a><br>
<a name="nav_contact" href="contact.html" id="contact_link">CONTACT</a><br>
</h1>
</td>
<td class="content">
<h1>
CONTACT US
</h1>
<hr>
<p>
Use the form below to contact us if you have any questions, queries or even any requests.
We are always happy to hear from you all.
</p>
<h1 class="subhead">Contact Form</h1>
<form name="message_form">
<table id="table2" class="inner_table">
<tr>
<td>Enter Name</td>
<td><input type="text" name="name_field"></td>
</tr>
<tr>
<td></td>
<td>
<input type="radio" id="rinfo" name="rbutton" value="information">Information
<input type="radio" id="rdona" name="rbutton" value="Donation">Donation
<input type="radio" id="radop" name="rbutton" value="Donation">Adoption
</td>
</tr>
例如,我无法访问table2中的名称。
我尝试使用以下功能进行访问,但失败了。
driver.findElements(By.xpath(“// * [@类= '表1'] / tbody的/ TR [2] / TD [2] /形式/表[@类= 'inner_table'] / TR [ 1] / TD [1))
答案 0 :(得分:2)
请尝试以下xpath
//table[@id='table2']/..//following::input[@name='name_field']
xpath的说明: - 使用id
标记的<table>
属性,并使用<input>
关键字继续following
标记。
以上xpath
将找到“输入名称”字段文本框。
注意: - 使用absolute xpath
而不是relative xpath
。
答案 1 :(得分:0)
不建议在selenium上使用xpath,因为元素可能会发生变化,如果添加其他元素,则必须重构选择器。
要回答您的问题,您可以使用table2
的ID并选择所需的元素。
答案 2 :(得分:0)
尝试xpath,如下所示:
访问名为'name_field'的输入文件,使用xpath下面的
driver.findElement(By.xpath("//table[@id='table2' and @class= 'inner_table']//input[@type='text' and @name='name_field']")
希望它会有所帮助。
答案 3 :(得分:0)
它应该是一个简单的input[name='name_field']
的CSS选择器,或者如果不够具体,请使用#table2 input[name='name_field']
。
答案 4 :(得分:0)
在Web表中,您可以使用xPath到达元素的父元素,然后找到td标签的preceding-sibling
或following-sibling
本教程将帮助您: http://www.seleniumtests.com/2011/10/using-xpath-to-reach-parent-of-element.html