首页 > 解决方案 > Python 无法识别使用 Selenium 单击的按钮

问题描述

所以我目前正在尝试从 youtube 页面中抓取数据。我正在使用 Selenium 来自动执行此操作。问题是出现的浏览器没有登录,因为我在非生成的硒浏览器上。所以它带有登录或“不,谢谢”图标。我环顾四周,找到了“不,谢谢”按钮的 Xpath,但我的系统显示“元素不可交互”。

按钮的 Xpath: 在此处输入图像描述

我输入的代码:

在此处输入图像描述

#We need to tell the drive to find the video of choice
driver.find_element_by_xpath('//*[@id="video-title"]')
driver.find_element_by_xpath('//*[@id="button"]')

#Interact with the above
driver.find_element_by_xpath('//*[@id="video-title"]').click()
driver.find_element_by_xpath('//*[@id="button"]').click()

我也尝试复制完整的 Xpath。有什么建议么?

标签: seleniumweb-scraping

解决方案


因此,经过将近一整天的时间,我想出了一个简单的解决方法。

无法完全找到弹出窗口的 xpath 或 id 或名称。但是如果我重新加载页面,它就不会再次出现。

所以一个简单的

driver.refresh()

或者

driver.get(driver.current_url)

单击链接后应该可以工作。

问题 - 弹出另一个 iframe 对象,即 google cookie。我尝试删除所有 cookie,但它仍然加载。我还尝试了其他进入 iframe 的方法,然后单击按钮无济于事。但是下面的链接对此有所帮助(第二个答案):

Youtube 谷歌弹出窗口 - selenium

谢谢!


推荐阅读