【问题标题】:windows.location.href changes while handelng MutationObserver mutation eventswindows.location.href 在处理 MutationObserver 突变事件时发生变化
【发布时间】:2017-07-17 01:50:43
【问题描述】:

我使用 selenium 和 MutationObserver 检查页面上的链接。我知道的一个链接出现了,不匹配,始终如一。发生超时时,window.location.href 与页面的原始位置不同。怎么会这样?

在调试器 (chrome) 中运行 javascript 不会发生这种情况,但在这种情况下,所有内容都匹配而无需创建 MutationObserver。

【问题讨论】:

  • 我很困惑,MutationObserver 和链接的srclocation.href 有什么关系?
  • 不清楚描述与 Selenium 的关系。你如何创建突变观察者?通过 Selenium 执行脚本?请向我们展示代码。请记住创建一个minimal, complete and verifiable example
  • 我不确定这会有多大的影响。代码由 JavascriptExecutor.execAsyncScript 评估,它将回调传递给 javascript。那就是“硒”参数:
  • 啊。我显然无法删除另一条消息。我不确定这将如何揭示。代码由 JavascriptExecutor.execAsyncScript 评估,它将回调传递给 javascript。也就是“selenium”参数:pastebin.com/s4cVVfD5 结果是控制台日志中出现这样的东西: Timeout orig(example.com/here) window orig=(example.com/there) document orig=(example.com/there)

标签: javascript selenium selenium-chromedriver mutation-observers


【解决方案1】:

我遗漏了一个我没有想到的关键细节,那就是它只是变化的散列(URL 片段)。例如:

http://exmaple.com/somewhere#here

变成

http://exmaple.com/somewhere#there

所以,这是正常的,当哈希变化时没有网络流量。

我可以创建一个 window.onhashchange 处理程序,以便在发生这种情况时做一些适当的事情。

【讨论】:

    猜你喜欢
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多