【问题标题】:Is it possible that a tag exists in the dom but not on the page?标签是否可能存在于dom中但页面上不存在?
【发布时间】:2017-04-17 07:47:47
【问题描述】:

我遇到了一种情况,我使用 xpath 在 DOM 中找到了一个“锚”标签,但在页面上找不到相应的元素,并且在测试特定标签时,click() 操作有效。这可能吗?

【问题讨论】:

  • 我不这么认为。但我认为缺少一些细节——当你在页面上说“无处可寻”时,你是什么意思?显示的页面,还是源代码,还是什么?
  • 显示的页面
  • 在这种情况下,链接可以被隐藏(未显示)、被遮盖(有东西放在它前面)、仅显示但不可见(没有内容,因此维度为零)或其他。 DOM 中完全有可能有一些你看不到的东西,事实上这很常见。
  • 这个标签引用了另一个页面,并且在使用 selenium 点击时可以工作。
  • 无关紧要。正如我所说,您可以拥有一个 DOM 元素但看不到它。我什至列出了如何实现这一目标的三种可能性。最后一个也应该与 Selenium 一起使用。由于没有单一的方法可以做到这一点,如果您想知道当前看不到元素的确切原因,请打开开发者控制台并检查它。我们不能直接说出原因是什么,而不知道任何上下文。唯一可以肯定的是直接回答标题中的问题——是的,这种情况是可能的。

标签: javascript html selenium dom xpath


【解决方案1】:

有很多可能的选择。 就像前面的答案一样,它可能有display : none。如果您的特定元素不是这种情况,它可能会从父节点继承。它的 CSS 类可能包含这个,可能涉及多个 CSS 类,仅举几例想到的。

现在关于 click() 方法实际工作...这是因为 Selenium WebDriver 不使用常规鼠标光标(您在屏幕上看到的那个)来执行实际单击或悬停在元素上,但是一切都在内部完成。

【讨论】:

    【解决方案2】:

    检查 CSS 属性,特别是

    显示:无

    【讨论】:

    • 没有这样的属性。但是,此标记显示在同一网站的不同页面上。
    • 应用于此标签的 css 属性是什么。你能在 chrome 控制台中检查计算机 css 属性吗?
    • 背景:rgb(204, 136, 136);边框:2px 纯红色;
    猜你喜欢
    • 2013-11-19
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 2010-09-19
    • 2014-09-14
    • 1970-01-01
    相关资源
    最近更新 更多