selenium - Python 无法识别使用 Selenium 单击的按钮
问题描述
所以我目前正在尝试从 youtube 页面中抓取数据。我正在使用 Selenium 来自动执行此操作。问题是出现的浏览器没有登录,因为我在非生成的硒浏览器上。所以它带有登录或“不,谢谢”图标。我环顾四周,找到了“不,谢谢”按钮的 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。有什么建议么?
解决方案
因此,经过将近一整天的时间,我想出了一个简单的解决方法。
无法完全找到弹出窗口的 xpath 或 id 或名称。但是如果我重新加载页面,它就不会再次出现。
所以一个简单的
driver.refresh()
或者
driver.get(driver.current_url)
单击链接后应该可以工作。
问题 - 弹出另一个 iframe 对象,即 google cookie。我尝试删除所有 cookie,但它仍然加载。我还尝试了其他进入 iframe 的方法,然后单击按钮无济于事。但是下面的链接对此有所帮助(第二个答案):
谢谢!
推荐阅读
- ios - iOS 启动屏幕过早关闭
- java - 对象的分组列表,其中每个对象是 2 个元素数组
- java - 在 java 上更新 DB 的多列性能
- javascript - JS中return语句中的问号是什么意思?
- javascript - weekNumbersWithinDays 在 fullcalendar v5 中不起作用
- ios - Xcode无法打开cordova-ios生成的项目”:“6.1.1”但“5.1.0”没问题
- json.net - 从 Json Schema 生成 Json 样本
- c# - 如何保持域和表示对象之间的对应关系
- vue.js - 如何修复“不允许加载本地资源”Vue.js
- reactjs - 上下文 - 调度不是一个函数 (React)