【问题标题】:Unable to locate the Xpath at run time even if it is verified [duplicate]即使经过验证,也无法在运行时找到 Xpath [重复]
【发布时间】:2021-12-25 07:56:51
【问题描述】:

您好,我正在尝试访问已通过开发人员工具验证且正确的 xapth。但是在运行时我是 selenium 无法找到它并且获取元素不可见异常。

My Xptah : //div[contains(text(),'Current Status of Python')]

我在这里找不到任何 iframe,但在运行时仍然无法找到该元素。

我观察到的一件事是,在开发工具中,如果我直接粘贴我的 xpath,那么它也无法找到它,我必须单击元素的源(div 标签),然后我的 xpath 才能工作。不确定这是什么行为。

【问题讨论】:

  • 那不是普通文本,那是文本节点。您应该使用文本来定位此特定元素,如果您可以使用其他 Web 元素来定位此 Web 元素会更好。

标签: java selenium xpath


【解决方案1】:

在 XPath 1.0 中,表达式 //div[contains(text(),'Current Status of Python')] 选择其 first 文本节点包含相关字符串的任何 div。在您的文档中,此字符串出现在 div 的第二个文本节点中。

这是text() 使用不正确的众多示例之一。写//div[contains(.,'Current Status of Python')] 几乎总是更好。

(如果 XPath 2.0 找到具有多个文本节点的元素,则会为 contains(text(), '...') 报错。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2021-05-23
    • 1970-01-01
    • 2021-05-04
    相关资源
    最近更新 更多