Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何等待网站加载元素';s xpath_Javascript_Xpath - Fatal编程技术网

Javascript 如何等待网站加载元素';s xpath

Javascript 如何等待网站加载元素';s xpath,javascript,xpath,Javascript,Xpath,我希望在我的javascript程序中能够通过xpath开始搜索网页上的某些元素。 我希望尽可能快地完成这项工作,这意味着一旦加载页面,我就要定位元素 我试图等待加载网页的DOM,幸运的是,此时您只能访问id,而不能访问xpath 目前我正在使用 window.onload = function() { //start searching for element } 这是非常缓慢的,尤其是对于有很多图片和其他图片的网站,因为它等待加载完整的网站 我想知道(如果可能的话)如何只等待元素的xpat

我希望在我的javascript程序中能够通过xpath开始搜索网页上的某些元素。 我希望尽可能快地完成这项工作,这意味着一旦加载页面,我就要定位元素

我试图等待加载网页的DOM,幸运的是,此时您只能访问id,而不能访问xpath

目前我正在使用

window.onload = function() {
//start searching for element
}
这是非常缓慢的,尤其是对于有很多图片和其他图片的网站,因为它等待加载完整的网站


我想知道(如果可能的话)如何只等待元素的xpath就绪,然后在那一刻开始搜索。

所有DOM元素都被解析,并在事件触发时准备好访问。下载完所有外部资源后,
load
事件将稍后触发

在下面的代码中,您会注意到控制台中的
Parsed
出现在
Loaded
之前:

window.addEventListener(“DOMContentLoaded”,function()){
console.log(“已解析”);
});
addEventListener(“加载”,函数(){
控制台日志(“已加载”);
});

谢谢您的回答。我在脚本中使用了“window.addEventListener(“DOMContentLoaded”,function(){…}”);“var event=new MouseEvent('click',{view:window,bubbles:true,cancelable:true});var cb=document.getElementsByName(“+elementName+”)[0];cb.dispatchEvent(event);”它允许我使用XPath单击Web元素。然而,即使脚本在我单独运行时工作得很好,但一旦包含在您给我的代码的括号中,它就不再工作了(它什么也不做)。你知道为什么吗?@abiday我已经更新了我的答案,加入了你的代码,但是你的代码中有错误,我甚至不知道你想用它来完成什么,因为元素已经有
点击
事件,你所需要做的就是在元素上调用
点击I()
方法。此外,这里根本没有使用XPath。XPath是一种具有自己语法的查询语言,用于XML文档结构。更多信息,请参见代码中的注释。实际上,我创建了另一个方法,该方法基于元素的“name”属性单击元素,我错误地发送了该方法,而不是使用“xpath”的方法,但我的xpath方法的工作方式基本相同。此外,单击元素的方式确实更容易,而且似乎也更有效。所以我一定要在我的代码中实现它。无论如何,非常感谢您的时间和帮助@abiday我很想看看你的“XPath”代码,因为XPath是用于XML的,而不是HTML(你使用的是XHTML吗?),它需要使用XML解析器才能工作。请注意,我们这里不使用[已解决的]设备-正如你所发现的,有一个合适的接受系统。