Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Can';t使用Python Selenium在阴影根(open)中查找元素_Python_Selenium_Selenium Webdriver_Shadow Dom_Queryselector - Fatal编程技术网

Can';t使用Python Selenium在阴影根(open)中查找元素

Can';t使用Python Selenium在阴影根(open)中查找元素,python,selenium,selenium-webdriver,shadow-dom,queryselector,Python,Selenium,Selenium Webdriver,Shadow Dom,Queryselector,我正在尝试从中获取Signers、Counter Signers和X509 Signers下的内容 结果不包括Signers、Counter Signers和X509 Signers下的部分 我也试着去做 driver.find_element_by_xpath("//*[@id="details"]//div/vt-ui-signature-info//vt-ui-expandable/span") 找到那部分,但它最终给了我 NoSuchEleme

我正在尝试从中获取Signers、Counter Signers和X509 Signers下的内容

结果不包括Signers、Counter Signers和X509 Signers下的部分

我也试着去做

driver.find_element_by_xpath("//*[@id="details"]//div/vt-ui-signature-info//vt-ui-expandable/span")
找到那部分,但它最终给了我

NoSuchElementException: Message: no such element: Unable to locate element
这将打印签名版本信息,类似地,您必须找到rool并调用shadowroot,然后找到其他根的元素

Shadow dom不是文档的一部分,因此您必须使用javascript executor查找文档中的元素

签名者字段(例如Microsoft Windows)嵌套在其中


解决方案 要提取文本,您必须使用Microsoft Windows,并且可以使用以下内容:

  • 代码块:

    driver.get('https://www.virustotal.com/gui/file/03d1316407796b32c03f17f819cca5bede2b0504ecdb7ba3b845c1ed618ae934/details')
    print(driver.execute_script("return document.querySelector('file-view').shadowRoot.querySelector('vt-ui-file-details').shadowRoot.querySelector('vt-ui-signature-info').shadowRoot.querySelector('vt-ui-expandable-detail').shadowRoot.querySelector('slot')").text)
    
  • 控制台输出:

    Microsoft Windows
    

工具书类 您可以在以下内容中找到一些相关讨论:


乔安娜,它在树荫下(开放)。你必须抓住阴影的根并从那里开始。@ArundeepChohan是的,我注意到了。但我如何在#shadow root下找到东西?这就是你需要做的。你能解释一下为什么不在这里尝试xpath/css选择器吗?@vitalis你可以使用locator查找第一个元素,但之后你必须从中返回shadowRoot谢谢你的帮助!我试过了,效果很好。然而,我有点需要签名部分的一切,我仍然有一个困难的时候。我编辑了我的帖子,你能帮我吗?提前谢谢@乔安娜听起来是一个完全不同的问题。你能根据你的新要求提出一个新问题吗?Stackoverflow贡献者将很乐意帮助您。完成!谢谢这是我的新发帖
driver.get('https://www.virustotal.com/gui/file/03d1316407796b32c03f17f819cca5bede2b0504ecdb7ba3b845c1ed618ae934/details')
print(driver.execute_script("return document.querySelector('file-view').shadowRoot.querySelector('vt-ui-file-details').shadowRoot.querySelector('vt-ui-signature-info').shadowRoot.querySelector('vt-ui-expandable-detail').shadowRoot.querySelector('slot')").text)
Microsoft Windows