首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何单击动态元素

如何单击动态元素
EN

Stack Overflow用户
提问于 2017-07-12 21:57:09
回答 2查看 35关注 0票数 0

我试图找出从下面的html中检索"Projects (x)“的xpath,但没有任何结果:

代码语言:javascript
复制
<li class="">
    <span id="c1025_ctl">
        <a id="c1025">
            <span>Similar people</span>
        </a>
    </span>
</li>
<li class="tabs-selected">
    <span id="c1016_ctl">
        <a id="c1016">
            <span>Projects (x)</span>
        </a>
    </span>
</li>
<li class="">
    <span id="c1037_ctl">
        <a id="c1037">
            <span>Info</span>
        </a>
    </span>
</li>

到目前为止,我已经尝试过使用//a[contains(.,'Projects (x)')]/span//a[contains(.,'Projects (x)')]

EN

回答 2

Stack Overflow用户

发布于 2017-07-12 22:24:35

如果在制作XPath时知道id,并且它们是一致的,则应首选以下各项:

代码语言:javascript
复制
//a[@id="c1016"]

如果您只能根据文本进行搜索,则可以使用以下命令:

代码语言:javascript
复制
//a[./span/text()="Projects (x)"]

我在http://www.xpathtester.com/xpath上进行了测试,在使用了封装在根标记中的示例数据后,我成功地检索到了目标a标记(为了使其有效);但是,我不能共享结果,因为站点的save函数似乎删除了第一个引号之后XPath字段中的所有内容。

关于您在注释中添加的Java代码,我将尝试调用By.xpath(...).toString()方法,希望它能显示整个构造的XPath。这可能会指出其构造中的错误。请注意,我不了解Selenium,只能希望By.toString方法可以这样运行。

如果没有,我将使用我的集成开发环境调试器来检查由By.xpath(...)调用创建的By项,并检查它的字段,期望找到一个包含整个构造的XPath的字段。

票数 1
EN

Stack Overflow用户

发布于 2017-07-12 22:12:08

您可以尝试xpath:

如果要获取元素a,请使用//span[. = 'Projects (x)'][parent::a]/parent::a

如果只想要span,请删除末尾的parent::a

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45059756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档