【问题标题】:What's the difference between these two XPATH? [duplicate]这两个 XPATH 有什么区别? [复制]
【发布时间】:2022-01-12 07:08:07
【问题描述】:

工作:

(//div[@role='option'][3])[2]

不工作:

(//div[@role='option'][1])[2]

我正在使用那些用于 Selenium Python 我可以从下拉列表中选择选项 - 除了选项 #1 - 这也仅从第二个下拉列表开始发生...

我有点卡住了,只想知道有什么区别以及为什么它不起作用?

【问题讨论】:

  • 您没有提供输入标记,也没有定义“工作”。这两个 XPath 表达式显然只是内部索引不同。如果您感到困惑,我们只能猜测原因,但这可能是因为您不了解内部索引(没有优先级更改的括号)意味着选择所有 div 元素,它们是它们各自的第 n 个子元素父母。 (有关详细信息,请参阅重复链接。)此类元素可能多于或少于 2,因此行为可能与您的预期不同。如果您需要更多帮助,请edit 您的问题并提供正确的minimal reproducible example

标签: python selenium xpath


【解决方案1】:

他们都使用//在页面上的任何位置查询@role='option'。 第一个选项采用 role='option' 的第 3 个内部元素和返回的第 2 个内部内部元素。

第二个接受第一个内部元素的 role='option' 和第二个内部元素返回。所以不同之处在于它们都返回不同的项目。一个人可能正试图返回不存在的东西。 [#] 在这种情况下指的是索引位置。

建议使用您的代码、网站以及您为解决问题而尝试做的任何事情发布问题的完整示例!总帐

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 2019-11-15
    • 2012-03-21
    • 2011-01-14
    • 2013-12-17
    • 2013-02-19
    • 2020-07-22
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多