css - 如果 xpath 和类名相同,如何在 Selenium Web 驱动程序中查找元素

标签 css xpath

我试图在下面的 HTML 代码中使用 junit 查找元素:

<div id="leftNav_updateProfile" class="leftNavBullet">
    <ul>
        <li>
            <a href="http://my.naukri.com/Profile/edit?id=&altresid=">
                <span class="gryTxt">• </span>
                Snapshot
            </a>
        </li>
     </ul>
</div>

我很困惑,因为我是 selenium 的新手,如何在此代码中找到元素。 让我尝试解释实际情况,即我要实现的目标。在 GUI 上有一个按钮“快照”,代码在上面。我尝试使用 xpath 查找此按钮的元素:

driver.findElement(By.xpath("//[@id='leftNav_updateProfile']/ul/li/a[1]")).click(); 

但是它不起作用。请帮助我如何在这种情况下找到元素。 我只是想通过 Xpath 实现它并不重要,任何方法都会有用。

最佳答案

我发现 CssSelector 更易于使用。你的情况:

driver.findElement(By.CssSelector("#leftNav_updateProfile ul li a")).click();

如果您是 CSS 选择器的新手,这里有一些提示:

标签按原样编写(示例见ul)

#id 之前(参见示例中的 leftNav_updateProfile)

. 位于类名之前(如果我们在您的示例中以span 为目标,我们将编写.gryTxt)

暗示后代 - 放一个空格(例如 ul li a 表示:ali 的后代,它是ul)

的后代

进一步了解try this

关于css - 如果 xpath 和类名相同,如何在 Selenium Web 驱动程序中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730647/

相关文章:

sql - 通过 SQL 从 Oracle 中的 clob 中提取 XML 子标签

java - Appium xpath 转义撇号

div 内的 CSS 定位

html - 如何在 NetSuite 在线客户表单中将复选框对齐到标签文本的左侧?

xml - 选择在XSLT中逗号分隔的特定字符串

xml - XQuery - 返回整个文档,而不仅仅是选择/修改的部分

javascript - 如何创建显示所选变量的可悬停下拉菜单

html - 如何在完成后禁用 CSS 动画

CSS 转换模糊了 Firefox 41.0.1 上的复选框

xpath - 选择XPath中唯一的第一个匹配节点