Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Selenium WebDriver Java中单击其他单元格的子元素_Selenium_Selenium Webdriver - Fatal编程技术网

在Selenium WebDriver Java中单击其他单元格的子元素

在Selenium WebDriver Java中单击其他单元格的子元素,selenium,selenium-webdriver,Selenium,Selenium Webdriver,通过首先查找包含特定文本的td来单击a元素的代码是什么 <table> <tbody> <tr> <td><a class="link">link</a></td> <td>1st</td> </tr> <tr> <td&

通过首先查找包含特定文本的td来单击a元素的代码是什么

<table>      
    <tbody>
        <tr>
            <td><a class="link">link</a></td>
            <td>1st</td>
        </tr>
        <tr>
            <td><a class="link">link</a></td>
            <td>2nd</td>
        </tr>
    </tbody>
</table>
试试这个xPath//td[containstext,'1st']/../td/a[@class='link']

你的错误来自轴心国的兄弟姐妹。标记a不是td标记的同级。我用。。要上升,请再次选择td,然后选择a

我使用测试工具测试了xPath。它起作用了。请注意,每个浏览器都有自己的xPath实现,因此它的行为可能会有所不同


但是,由于xPath表达式中没有任何异国情调,因此我不希望出现任何问题。

还要注意,当一个元素上有多个类时,class=可能会导致问题。Xpath将class属性视为文本字符串,因此任何添加的类或顺序的更改都会破坏Xpath。我会用[contains@class,link]但这也暗示了这个技巧的重要性。我在.xpath//a[@class='link'][2]中使用了它,如果有多个元素具有class='link'
driver.findElement(By.xpath("//td[contains(text(), '1st')]/following-sibling::a[@class='link']")).click();