找出正确的xpath

时间:2014-11-11 10:09:20

标签: selenium xpath selenium-webdriver

我有一个像这样的html页面:

...
<div class="container">
    <div class="title">Meat</div>
    <div class="someclass">
        <div class="tile AAA">
            <div class="text">AAA</div>
            <img class="image" src="somewhat.jpg" />
        </div>
    </div>
    <div class="someclass">
        <div class="tile BBB">
            <div class="text">BBB</div>
            <img class="image" src="somewhat.jpg" />
        </div>
    </div>
</div>

<div class="container">
    <div class="title">Fish</div>
    <div class="someclass">
        <div class="tile AAA">
            <div class="text">AAA</div>
            <img class="image" src="somewhat.jpg" />
        </div>
    </div>
    <div class="someclass">
        <div class="tile BBB">
            <div class="text">BBB</div>
            <img class="image" src="somewhat.jpg" />
        </div>
    </div>
</div>
...

我需要能够获得selenium点击特定元素的img(例如,我想要Meat-BBB的img)但我找不到通过xpath获取它的方法

任何帮助将不胜感激......

4 个答案:

答案 0 :(得分:1)

这将点击Meat-BBB&#39; img:

driver.findElement(By.xpath("//div[.='Meat']/following-sibling::*[2]//img")).click();

它找到div元素的第二个兄弟,其text / innerHtml为&#34; Meat&#34;,然后遍历第一个&#34; img&#34;其中的元素。

答案 1 :(得分:0)

这将是您的Meat-BBB的img /html/body/div[1]/div[3]/div/img的xpath 您可以按照以下步骤找到任何元素的xpath。

1. Open your HTML file with any browser 
2. Press F12 and inspect that element by clicking on that element
3. Now right click in html panel on the element and click on Copy XPath

完成!现在你有了XPath。

答案 2 :(得分:0)

为了使这个Xpath更通用,我们可以定义一个像

这样的字符串
// assign the value under which you want to click image Meat or Fish
String classTitle = "Meat";

并按如下方式转换xpath:

//div[.='+classTitle+']/following-sibling::*[2]//img")

答案 3 :(得分:0)

xpath将是 - yourText //div[div[text()='yourText']]/descendant::img