无法使用 Selenium 访问 Youtube 搜索栏?
Youtube Search Bar not reachable with Selenium?
我试图让 Selenium 为我进行 Youtube 搜索,但我到了最后一步,实际上是输入文本,但我卡住了。 searchElem 使用允许我使用 .click() 的 id,但我不能将 send_keys() 与该 id 一起使用,所以我尝试了 inputElem,但它也不起作用。
没有更具体的 id 或 class 可用于搜索输入,所以我不确定该怎么做。
以下是我尝试将 send_keys() 与 searchElem 和 inputElem 一起使用时出现的错误。
selenium.common.exceptions.ElementNotInteractableException: Message: Element <div id="search-input" class="ytd-searchbox-spt"> is not reachable by keyboard
这是我的 WebDriver 代码和源代码中的元素。
driver = webdriver.Firefox()
driver.get('https://www.youtube.com')
searchElem = driver.find_element_by_id('search-input')
inputElem = driver.find_element_by_id('search')
searchElem.click()
searchElem.send_keys('election')
可能 'search'
是正在拾取的不同元素的 ID,因此请尝试改用 xpath
。
inputElem = browser.find_element_by_xpath('/html/body/ytd-app/div/div/ytd-masthead/div[3]/div[2]/ytd-searchbox/form/div/div[1]/input')
inputElem.send_keys('election')
您可以根据搜索字段占位符创建定位器(这将使它独一无二)
例如,对于英语,占位符将是“搜索”,您的定位器将如下所示:
//input[@placeholder='Search']
我试图让 Selenium 为我进行 Youtube 搜索,但我到了最后一步,实际上是输入文本,但我卡住了。 searchElem 使用允许我使用 .click() 的 id,但我不能将 send_keys() 与该 id 一起使用,所以我尝试了 inputElem,但它也不起作用。 没有更具体的 id 或 class 可用于搜索输入,所以我不确定该怎么做。 以下是我尝试将 send_keys() 与 searchElem 和 inputElem 一起使用时出现的错误。
selenium.common.exceptions.ElementNotInteractableException: Message: Element <div id="search-input" class="ytd-searchbox-spt"> is not reachable by keyboard
这是我的 WebDriver 代码和源代码中的元素。
driver = webdriver.Firefox()
driver.get('https://www.youtube.com')
searchElem = driver.find_element_by_id('search-input')
inputElem = driver.find_element_by_id('search')
searchElem.click()
searchElem.send_keys('election')
可能 'search'
是正在拾取的不同元素的 ID,因此请尝试改用 xpath
。
inputElem = browser.find_element_by_xpath('/html/body/ytd-app/div/div/ytd-masthead/div[3]/div[2]/ytd-searchbox/form/div/div[1]/input')
inputElem.send_keys('election')
您可以根据搜索字段占位符创建定位器(这将使它独一无二) 例如,对于英语,占位符将是“搜索”,您的定位器将如下所示:
//input[@placeholder='Search']