我正在尝试在virus total站点上自动注册,并为此在python中使用selenium。但是在通过id获取元素时遇到问题。我被困在这个问题中。任何帮助都将不胜感激。谢谢。 这是我正在尝试的代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver =webdriver.Chrome()
driver.get('https://www.virustotal.com/gui/join-us')
print(driver.title)
search = driver.find_element_by_id("first_name")
search.send_keys("Muhammad Aamir")
search.send_keys(Keys.RETURN)
time.sleep(5)
driver.quit()
网站https://www.virustotal.com/gui/join-us中的名字字段位于多个
#shadow-root (open)
的深处解决方案
要将字符序列发送到名字字段,必须使用^{} ,并且可以使用以下Locator Strategy:
代码块:
浏览器快照:
参考资料
您可以在以下内容中找到一些相关讨论:
如果您查看网站的HTML,您可以看到您的输入字段位于所谓的
#shadowroot
中这些shadowroot阻止您使用简单的
find_element_by_id
查找shadowroot中包含的元素。可以通过查找包含要查找的元素的所有父ShadowRoot来修复此问题。在每个shadowroot中,您需要使用javascript的querySelector并查找下一个shadowroot,直到您可以访问您要查找的元素为止在您的情况下,您需要执行以下操作:
相关问题 更多 >
编程相关推荐