Selenium新手求助:如何通过名称查找Edit按钮元素(尽量避免使用XPath)
关于Selenium定位Edit按钮的问题解答
嘿,我来帮你梳理下这个问题~
你写的Driver.findElement (By.cssSelector("a[name='Edit']")).click();是不正确的,因为你提供的HTML代码里,<a>标签根本没有name属性,你要找的"Edit"是这个链接的显示文本,不是元素的name属性值,所以这个选择器匹配不到任何元素。
下面给你几个不用XPath就能定位这个元素的可靠方法:
使用
By.linkText(最直接):因为这是一个链接元素,且显示文本完全是"Edit",用这个方法最精准:driver.findElement(By.linkText("Edit")).click();这个方法会精准匹配链接的全部文本,适合文本唯一且固定的场景。
使用
By.partialLinkText:如果以后这个按钮文本可能变成"Edit Document"这类包含"Edit"的内容,用这个方法可以匹配包含指定文本的链接:driver.findElement(By.partialLinkText("Edit")).click();当然现在文本就是"Edit",这个方法也完全适用。
结合href属性的CSS选择器:如果担心文本会变化,但链接的路径(比如
editdocumentation.php)是固定的,可以用CSS选择器匹配href包含指定字符串的<a>标签:driver.findElement(By.cssSelector("a[href*='editdocumentation.php']")).click();这里的
*=表示href属性值中包含指定的字符串,能精准定位到这个编辑操作的链接。
内容的提问来源于stack exchange,提问作者Vladislav
相关产品推荐
相关产品推荐

