Python Selenium.click()在使用ActionChains后不起作用



我在Youtube上搜索,然后按几个TAB,然后通过ActionChains按几个END。。。然后我想获取结果,如果我找到我想要的,我想点击它。

driver.get('https://www.youtube.com')
time.sleep(4)
items = driver.find_element(By.XPATH, "//input[@id='search']")
rand = random.choice(query)
items.send_keys(rand)
items.send_keys(Keys.RETURN)
time.sleep(2)
action = ActionChains(driver)
for i in range(5):
action.send_keys(Keys.TAB)
action.perform()
time.sleep(1)

for i in range(3):
action.send_keys(Keys.END)
action.perform()
time.sleep(4)
items = driver.find_elements(By.XPATH, "//div[@id='primary']//a[@id='thumbnail'][@class='yt-simple-endpoint inline-block style-scope ytd-thumbnail'][contains(@href, 'watch?v=')]")
for i in items:
if ......... :
i.click()

通常,在使用:driver.find_elements(By.XPATH....后,我可以进行

for i in items:
if ...... :
i.click()

但现在它不起作用,因为我一直在使用action = ActionChains(driver)

我得到这个错误:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

我找到了答案,问题是youtube,而不是硒。i.点击((有效,问题是我的find_elements(By.XPATH,…youtube也有来自主页的不可见元素,这些元素包含在结果页面中,这给了我不可见的项目。

一旦我将XPATH更改为:

//ytd-search[@class='style-scope ytd-page-manager']//div[@id='primary']//a[@id='thumbnail'][@class='yt-simple-endpoint inline-block style-scope ytd-thumbnail'][contains(@href, 'watch?v=')]")

它工作

相关内容

  • 没有找到相关文章

最新更新