python - 打开 html 的影子根目录时出现错误
问题描述
我想在 shadow-root(open) 中获取一个元素,但以下代码不起作用。不幸的是,由于机密原因,我无法在此处显示 html。它与链接中的这种情况非常相似:https ://www.tutorialguruji.com/python/accessing-shadowroot-via-selenium-in-firefox-returns-javascriptexception-cyclic-object-value/
火狐,硒,蟒蛇
def expand_shadow_element(element):
# return a list of elements
shadowRoot = driver.execute_script('return arguments[0].shadowRoot.children', element)
return(shadowRoot)
#wait for element to load
el = WebDriverWait(driver, timeout=20).until(lambda d:d.find_element_by_tag_name("amplify-authenticator"))
time.sleep(5)
#expand the shadowroot and click the canvas
host = driver.find_element_by_tag_name("amplify-authenticator")
shadowRoot = expand_shadow_element(host)
print(shadowRoot[1])
canvas = shadowRoot[1].find_element_by_id('username')
canvas.click()
我得到的一个错误是
Traceback (most recent call last):
File "UHportal_login.py", line 60, in <module>
canvas = shadowRoot[1].find_element_by_id('username')
File "C:\Users\myname\.conda\envs\session\lib\site-packages\selenium\webdriver\remote\webelement.py", line 305, in find_element_by_tag_name
return self.find_element(by=By.TAG_NAME, value=name)
File "C:\Users\myname\.conda\envs\session\lib\site-packages\selenium\webdriver\remote\webelement.py", line 659, in find_element
{"using": by, "value": value})['value']
File "C:\Users\myname\.conda\envs\session\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Users\myname\.conda\envs\session\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\myname\.conda\envs\session\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="username"]
解决方案
推荐阅读
- c++ - Windows 上的英特尔 C++ 编译器灾难性错误:无法打开源文件“bits/unique_ptr.h”
- sql - 如何选择具有相同列条件的多行
- python - 加快从 Golang 的 exec packaqe 访问 python 程序
- python - Pandas:在 Pandas 数据框中查找连续索引的起始值
- javascript - 如何以正确和高效的方式避免在 React 中改变本地状态
- python - GCP:无法连接到云 TPU
- javascript - 第二次尝试反应功能松散状态
- swift - 快速省略命名空间
- c - 了解 C 程序的堆栈和红色区域
- python - 角图:“比样本更多的维度”错误