有个网站:https://www.nealthy.com/alpha(不是广告),而且它有一个输入姓名和邮件的表单,那就好了,但这个表单是动态的东西,因为当我试图搜索一个项目来输入姓名/邮件时:
driver.find_element(By.XPATH, '//*[@id="firstname"]')
给出一个错误,指出未找到元素:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="firstname"]"}
(Session info: chrome=110.0.5481.180)
Stacktrace:
Backtrace:
(No symbol) [0x00E737D3]
(No symbol) [0x00E08B81]
(No symbol) [0x00D0B36D]
(No symbol) [0x00D3D382]
(No symbol) [0x00D3D4BB]
(No symbol) [0x00D73302]
(No symbol) [0x00D5B464]
(No symbol) [0x00D71215]
(No symbol) [0x00D5B216]
(No symbol) [0x00D30D97]
(No symbol) [0x00D3253D]
GetHandleVerifier [0x010EABF2+2510930]
GetHandleVerifier [0x01118EC1+2700065]
GetHandleVerifier [0x0111C86C+2714828]
GetHandleVerifier [0x00F23480+645344]
(No symbol) [0x00E10FD2]
(No symbol) [0x00E16C68]
(No symbol) [0x00E16D4B]
(No symbol) [0x00E20D6B]
BaseThreadInitThunk [0x76027D69+25]
RtlInitializeExceptionChain [0x77AEBB9B+107]
RtlClearBits [0x77AEBB1F+191]
Process finished with exit code 1
我尝试用time.sleep()
解决这个问题,但是无论我设置多少次睡眠时间,都无济于事。
完整代码:
import time
from selenium import webdriver
from fake_useragent import UserAgent
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
ua = UserAgent()
url = "https://www.nealthy.com/alpha"
options = webdriver.ChromeOptions()
options.add_argument(f'user-agent={ua.chrome}')
web_driver = Service('C:\\webdriver\\chromedriver.exe') #ПУТЬ К ВЕБ ДРАЙВЕРУ
driver = webdriver.Chrome(service=web_driver, options=options)
driver.get(url=url)
time.sleep(10)
driver.find_element(By.XPATH, '//*[@id="firstname"]').send_keys('Axcent')
我尝试查找名称的字段元素并在其中插入名称。但出现了未找到该元素的错误
1条答案
按热度按时间omqzjyyz1#
这个网站是一个有点棘手,他们有一个阴影大教堂的形式。
要访问这个DOM中的元素,首先需要找到托管它的元素(在本例中是form-widget),然后运行一个脚本来提取shadow Dom,之后就可以访问这些元素了。
下面是访问电子邮件字段的最终代码,例如:
有关阴影穹顶的详细信息:
还有一个pypi软件包声称可以简化这个过程: