使用“// script [contains(@src,'blah')”查找异步脚本

时间:2015-05-03 20:56:25

标签: javascript google-chrome asynchronous xpath

因此,有几篇关于如何查询dom以通过xpath查找元素的帖子。我发现了一个帖子Is there a way to get element by XPath using JavaScript in Selenium WebDriver?,它主要满足我的需求。我的问题源于我试图找到的元素是一个脚本,并且该脚本需要异步加载。这似乎打破了使用

寻找路径
var path = "//script[contains (@src, 'locationOfScript')]";

我认为根本原因可能是Chrome推迟异步脚本加载,直到页面完成为止:Chrome delays load of script with async attribute

我正在使用Chrome开发用户脚本,并且必须将脚本保留为异步,否则我只需删除异步属性。

任何方法都可以查询文档中的脚本,直到其他所有内容之后才会加载?

谢谢!

1 个答案:

答案 0 :(得分:0)

async属性会导致脚本无法阻止,因此无法确定何时加载。但是,您可以确定何时使用以下代码加载DOM:

document.onreadystatechange = function () {
    if (document.readyState === "complete") {
        var path = "//script[@src='locationOfScript']";
        // etc...
    }
}