使用selenium webdriver遍历带有xpath的父子节点

时间:2012-10-02 03:22:04

标签: selenium-webdriver

我有一个类似于以下的HTML

<table>
<tr>
    <td class='1'>
        <div>
            <a class='abc'> element1 </a>
        </div>
    </td>
    <td class='2'></td>
    <td class='3'>
        <img id='generated id' class='xyz' />
    </td>
</tr>
</table>

我有一个element1作为函数的参数。当我得到element1时,我需要遍历img标签并点击它。

我尝试了xpath选择器

WebElement e = driver.getelementbyXpath("//a[contains(@class,'abc')
and text()='element1')"]);

WebElement e2 = e1.findelementbyxpath("../..//img[contains(@id,'something') 
and contains(@class='xyz')]");

这不起作用。

1 个答案:

答案 0 :(得分:1)

您的“element1”文本节点两侧都有空格填充。 "//a[contains(@class,'abc') and text()=' element1 ')"会工作;)

此外,你使用了太多contains,我认为与[@class='abc'] [@id='blah..']相比效率非常低。