根据div class selenium中的文本单击按钮

时间:2016-02-04 13:11:04

标签: selenium xpath

我有一个<div>课程,其中包含<a>代码和<h3>代码以及相同的<div>代码。我只是想根据<a>文字点击该div类的<h3>

如下例所示,div类名称为&#34; product eq-height &#34;让<h3>标记有一些文字&#34; Applet Iphone 5S&#34; 如果找到此结果,则点击<a>名为&#34的类; 选择-device按钮&#34;

但是这个div类多次出现在页面上不同的H3文本。

<div class="product eq-height" style="padding-bottom: 0px ! important; min-height: 329px;">
                    <h3 class="h4">Apple Iphone 5S</h3>

                    <input name="productModel" value="Apple Iphone 5S" type="hidden">
                    <div class="subtitle">
                      <span>Apple</span>
                    </div>
                    <a class="select-device-button" href="javascript:void(0);">
                      <div class="item">
                        <img alt="" class="prod-img-lrg lazyloaded" data-src="https://vgeco-oat1.vodafone.com/images/Iphone 5S.jpg" src="https://vgeco-oat1.vodafone.com/images/Iphone 5S.jpg"> <noscript><img alt="" src="https://vgeco-oat1.vodafone.com/images/Iphone 5S.jpg"&gt;</noscript>
                      </div></a>

                      <div class="info">
                        <div class="inner">
                          <ul class="cost">
                            <li><b>Total cost</b>
                            </li>


                            <li class="price">£ 300.00</li>
                          </ul>


                          <ul class="cost">
                            <li><b>My cost</b>
                            </li>

                                                                                                                <li class="price">£ 106.99</li>                            
                          </ul>
                        </div>


                        <div class="cta">
                          <a class="btn btn-sml select-device-button" href="javascript:void(0);">Select</a>
                        </div>
                      </div>


                      <div class="co-link-wrap txt-center">
                      </div>
                    </div>

3 个答案:

答案 0 :(得分:2)

这是一个可能的XPath表达式:

//div[@class='product eq-height' and h3='Apple Iphone 5S']/a[@class='select-device-button']

解释:

  • //div[@class='product eq-height' and h3='Apple Iphone 5S'] :上述XPath将首先找到div元素,其中class属性值等于"product eq-height"并且具有子{{} 1}},其值等于h3

  • "Apple Iphone 5S" :然后,根据找到的/a[@class='select-device-button']元素,XPath返回子元素div,其中a属性值等于{{ 1}}。

答案 1 :(得分:1)

如果我理解正确,您希望通过某些adiv找到h3元素,如果是,那么您可以这样做非常简单:

//div[h3[text()="Apple Iphone 5S"]]/a[@class="select-device-button"]

您正在寻找具有特定div元素的h3元素,并且从那里通过使用它的类属性或您需要/想要的任何其他元素,很容易找到您想要的下一个元素。 / p>

希望这有帮助!

答案 2 :(得分:0)

假设你有像...的结构。

<div>
<h3>Xyz</h3>
<a>Something there</a>
</div>

并且您希望在点击<a>时点击h3代码

尝试将h3的数据属性设为与a的ID相同,然后当用户点击h3并在java脚本中获取该数据属性时attr("data") )然后通过java脚本

单击它