【发布时间】:2021-12-06 02:41:31
【问题描述】:
我正在尝试使用 Java 和 Selenium 进行网络抓取,但对于我需要进行网络抓取的一部分,它需要我访问一个影子 DOM 元素。我正在使用 Javascript 执行程序来访问它,并且正在输入检索我要查找的内容所需的 querySelector sn-p,但我收到“无法读取 null 的属性(读取 'ShadowRoot')”错误。有谁熟悉这个以及如何解决它?
这是我的代码 sn-p:
String pagePdfUrl = (String) js.executeScript("document.querySelector('pdf-viewer').shadowRoot.getElementById('content').querySelector('embed').getAttribute('original-url')");
js 是 JavascriptExectuor 变量。
谢谢!
【问题讨论】:
-
没有办法用它来判断你做的是对还是错。您已将其描述为好像您已正确完成所有操作。该属性被命名为
shadowRoot,而不是ShadowRoot,如果那样的话。 -
我很抱歉。我刚刚添加了一个代码 sn-p。如果您需要更多信息,请告诉我
-
尝试将
return放在"和document之间。 -
不幸的是,这也不起作用
标签: javascript java selenium web-scraping