Css 我如何找到选择器,例如。在Dream.js中单击?
我正在尝试使用梦魇.js自动抓取网页。我是一名系统管理员,对Node.js或CSS不太熟悉 我已经能够让噩梦输入并点击几个按钮让我登录-我通过使用Chrome开发工具Inspect找到了选择器。不幸的是,噩梦需要什么,或者我认为它需要什么,是不能粘贴的?例如,我正在使用的登录用户名框,这是在噩梦中使用的:Css 我如何找到选择器,例如。在Dream.js中单击?,css,node.js,nightmare,Css,Node.js,Nightmare,我正在尝试使用梦魇.js自动抓取网页。我是一名系统管理员,对Node.js或CSS不太熟悉 我已经能够让噩梦输入并点击几个按钮让我登录-我通过使用Chrome开发工具Inspect找到了选择器。不幸的是,噩梦需要什么,或者我认为它需要什么,是不能粘贴的?例如,我正在使用的登录用户名框,这是在噩梦中使用的: .insert('input#username.form-control', 'username') 在Chrome开发工具中,在元素中,这就是悬停在GUI元素上的内容,并且是“属性”中的第
.insert('input#username.form-control', 'username')
在Chrome开发工具中,在元素中,这就是悬停在GUI元素上的内容,并且是“属性”中的第一行,但是如果我使用“复制选择器”,我会得到
#用户名
复制Xpath:
/*[@id=“username”]
复制元素:
感谢您的背景介绍,但我相信您的问题可以简化为询问可以使用什么jQuery选择器访问策略测试仪
这将访问元素$('button[class^=“dpl-button_quo;])
。这里的缺点是,这个类并没有什么独特之处,这意味着拥有这个类的所有*元素都将应用您的单击事件
注意,这个元素包含多个属性,这意味着这里有许多选项。但是,要知道,DOM中的其他元素可能具有相同的属性,这取决于您非常关注的属性,因此这里的关键是找到唯一的元素。大多数情况下,我们可以将ID应用于元素,只要ID在DOM中是唯一的,您就可以简单地使用$(“#YourUniqueId”)
访问该特定元素,而不访问其他元素
关于您在帖子中所放置的不正确内容,需要注意的一点是,您试图通过使用元素文本作为ID来访问元素(例如,。单击('button#Policy Tester')
)。元素文本不是它的ID
这里有几个链接可能会帮助那些需要关于选择器的可靠参考的人:
修订版更新
研究了一下Dream.js,请尝试单击('button.dpl-button\uuuuuuu jGBcY')
以查找元素。感谢您的背景知识,但我相信您的问题可以浓缩为询问可以使用什么jQuery选择器访问策略测试仪
这将访问元素$('button[class^=“dpl-button_quo;])
。这里的缺点是,这个类并没有什么独特之处,这意味着拥有这个类的所有*元素都将应用您的单击事件
注意,这个元素包含多个属性,这意味着这里有许多选项。但是,要知道,DOM中的其他元素可能具有相同的属性,这取决于您非常关注的属性,因此这里的关键是找到唯一的元素。大多数情况下,我们可以将ID应用于元素,只要ID在DOM中是唯一的,您就可以简单地使用$(“#YourUniqueId”)
访问该特定元素,而不访问其他元素
关于您在帖子中所放置的不正确内容,需要注意的一点是,您试图通过使用元素文本作为ID来访问元素(例如,。单击('button#Policy Tester')
)。元素文本不是它的ID
这里有几个链接可能会帮助那些需要关于选择器的可靠参考的人:
修订版更新
如果您稍微研究了一下Dream.js,请尝试单击('button.dpl-button\uuuuuuu jGBcY')
以查找元素。有很多方法可以获得正确的选择器。使用检查元件等
方式1
从“检查元素”中选择“复制选择器”,大多数情况下它都可以工作。您不复制元素,而是复制选择器
方式2
下面是一个在chrome中实现的简单方法
- 安装
- 然后,在您想要刮取的任何页面上,打开selectorgadget并选择元素
- 这是您需要的元素选择器
- 使用它
有很多方法可以找到合适的选择器。使用检查元件等
方式1
从“检查元素”中选择“复制选择器”,大多数情况下它都可以工作。您不复制元素,而是复制选择器
方式2
下面是一个在chrome中实现的简单方法
- 安装
- 然后,在您想要刮取的任何页面上,打开selectorgadget并选择元素
- 这是您需要的元素选择器
- 使用它
有趣-如果我在Chrome开发工具控制台中键入document.querySelector('button[class^=“dpl-button”]”)
,它只返回一个结果,并且它与我遇到问题的按钮不同。@mfinin-显然,在包含该类的页面上有多个元素,`……querySelector(…`将返回找到的第一个元素,这是querySelector
的预期行为。请参阅我在这方面留下的注释。如上所述,您需要为querySelector
找到元素的独特之处,以将DOM查询隔离到您正在查找的元素。此外,如上所述,还需要一个为元素添加一个ID并查询该ID。@mfini-同样,我可能不应该质疑这一点,但为什么你要加载jQuery,然后使用纯javascript函数,如querySelector
?我不知道你问我是否加载jQuery是什么意思。我说我所做的就是我所做的一切。我的问题描述了我的评论是我在dev工具控制台中尝试过的。我没有加载jQuery;我假设噩梦和/或节点为我做了这件事?啊哈-但这起作用了:``。单击(“#content_container>div>div>div>div>div.sub-header>按钮”)`这是所需按钮的选择器。有趣-如果我键入document.querySelector('button[clas