人偶不是有效的选择器

时间:2019-03-05 06:50:55

标签: puppeteer

我正在尝试使用操纵up来刮擦预加载到输入框中的信息。我相信那将意味着它是占位符。

我似乎无法使选择器正常工作。我右键单击输入框,然后使用chrome dev工具复制选择器,然后得到#company-legal-name > span > ng-transclude > wf:textfield > div > input

但是如果我把它放到控制台中

document.querySelector('#company-legal-name > span > ng-transclude > wf:textfield > div > input')

我收到此错误

VM637:1 Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '#company-legal-name > span > ng-transclude > wf:textfield > div > input' is not a valid selector.
at <anonymous>:1:10

我尝试了很多不同的方法,但是它永远无法找到选择器。如果这有所不同,则该页面似乎是有角度的。不幸的是,由于该页面已被锁定为非管理员,因此无法链接该页面。

PS:

document.getElementById('#company-legal-name')

返回null

2 个答案:

答案 0 :(得分:0)

wf:textfield不是有效的CSS选择器,因此会出现语法错误:

> document.querySelector('wf:textfield')
SyntaxError: 'wf:textfield' is not a valid selector

如果没有wf:,则可以接受:

>document.querySelector('textfield')
null

我对ng-transclude选择器也有疑问,我猜这应该是(Angular?)标记名。

答案 1 :(得分:0)

  • 由于冒号(:),您将获得无效的选择器,特别是wf:textfield并不是querySelector的有效选择器,即使您使用inspect元素也是如此。
  • getElementById将要求您删除选择器前面的哈希#

解决方案: 取出碎片(wf:textfield),然后这样写,

#company-legal-name input

好像我们也可以使用input[name="input_2"],如评论中所述。