繁体   English   中英

如果webtable元素在td标签内,如何使用xpath访问webtable元素

[英]How to access a webtable element using xpath if the webtable element is inside a td tag

我无法访问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(“ // * [@ class ='table1'] / tbody / tr [2] / td [2] / form / table [@ class ='inner_table'] / tr [1] / td [1))

xpath尝试一下

//table[@id='table2']/..//following::input[@name='name_field']

xpath的解释:-使用<table>标签的id属性,并使用following关键字继续使用<input>标签。

xpath上方的该位置将找到“输入名称”字段文本框。

注意:-使用relative xpath而不是使用absolute xpath relative xpath

不建议在硒上使用xpath,因为元素可能会发生变化,如果添加另一个元素,则必须重构选择器。

要回答您的问题,您可以使用table2的ID并选择所需的元素。

尝试如下所示的xpath:

访问名称为“ name_field”的输入,在xpath下使用

driver.findElement(By.xpath("//table[@id='table2' and @class= 'inner_table']//input[@type='text' and @name='name_field']")

希望它会有所帮助。

它应该是一个CSS选择器,就像input[name='name_field']一样简单;如果不够具体,请使用#table2 input[name='name_field']

在Web表中,可以使用xPath到达元素的父元素,然后找到td标签的preceding-siblingfollowing-sibling

本教程将为您提供帮助: http : //www.seleniumtests.com/2011/10/using-xpath-to-reach-parent-of-element.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM