【发布时间】:2021-04-06 15:50:24
【问题描述】:
我正在使用 selenium webdriver 进行一个项目,该项目需要我找到一个元素并单击它。该程序首先进入一个网站,点击搜索栏,输入预先输入的字符串,然后点击回车,至此一切都成功了。我希望它做的下一件事是找到搜索的第一个结果并单击它。这部分我遇到了麻烦。到目前为止,我已经成功定位了所有元素,但由于弹出错误,我无法找到这个元素。这是我的代码:
from selenium import webdriver
import time
trackname = input("Track Name: ")
driver = webdriver.Chrome('D:\WebDrivers\chromedriver.exe')
driver.get('https://music.apple.com/us/artist/search/166949667')
time.sleep(2)
searchbox = driver.find_element_by_tag_name('input')
searchbox.send_keys(trackname)
from keyboard import press
press('enter')
time.sleep(2)
result = driver.find_element_by_id('search-list-lockup__description')
result.click()
我尝试过以其他方式定位元素,但它不起作用,我猜问题是在搜索后我必须告诉它在该页面上搜索但我不确定。这是错误:
Traceback (most recent call last):
File "D:\Python Projekti\iTunesDataFiller\iTunesDataFiller.py", line 18, in <module>
result = driver.find_element_by_id('search-list-lockup__description')
File "D:\Python App\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "D:\Python App\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "D:\Python App\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "D:\Python App\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="search-list-lockup__description"]"}
(Session info: chrome=89.0.4389.114)
Process finished with exit code 1
我该怎么办?
【问题讨论】: