【问题标题】:CasperJS not finding element by class when loaded via ajaxCasperJS通过ajax加载时没有按类查找元素
【发布时间】:2017-12-30 03:35:40
【问题描述】:

我使用了几种攻击方法试图让 Casper 查看有问题的元素,该元素通过第二个 GET 请求加载,该请求返回一堆 json 以加载到页面的 DOM 中。

事情是this.waitForResource(url,....) 在大约 2 秒后正常执行成功回调(我设置了 20 的超时)。

然后我先在里面尝试了this.click('.class-name'),然后是this.evaluate(function(){document.getElementsByClassName('.class-name')[0].click()});

通过 casperJS 单击返回 CasperError: Cannot dispatch mousedown event on nonexistent selector: .class-name 而我不确定 DOM 操作的作用 - 我的 this.on('resource.received',....) 调用之后立即没有捕获任何内容,所以我认为它也没有任何效果。 DOM 代码有时似乎在 Casper 中静默失败。

只有在通过ajax加载到DOM后才能选择元素并单击它们以下载文件?

有没有比 CasperJS 更好的库?

【问题讨论】:

    标签: ajax download phantomjs casperjs


    【解决方案1】:

    Casper 有 waitForSelectorwaitFor 方法可以满足您的需求。

    waitFor 将等待提供的函数返回 true

    waitForSelector 将等到提供的选择器在 DOM 中,所以我想这是您想要使用的选择器。

    另外还有waitUntilVisible 等待元素在屏幕上可见

    【讨论】:

      猜你喜欢
      • 2015-05-28
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 2023-01-26
      • 2018-07-24
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多