免责声明
好的。因此,我无法让您的弹出窗口出现或您的代码出现;但是,我确实进入了自己的 Google Drive,并且能够选择一张照片。因此,希望这种技术能够帮助您或指导您找到正确的解决方案。
基于呈现给我的HTML,我能够创建以下xpath
//div[@role='main' and not(@style)]//c-wiz[@aria-multiselectable='true']//c-wiz[@data-node-index]//div[@role='row']
说明
当我查看呈现给我的代码时,我注意到某些页面有一些重复的classes;即 role 和 style 对于初学者。因此,基于此,我注意到如果我的文件夹中有文件,我的 div 将不会有 @style='display: none;' 或 @style 标签,
打开我的 Google 开发者工具 (F12) 后,我在 xpath 搜索栏中输入://div[@role='main' and not(@style)],得到了 1 of 1。
之后,我开始查看代码,发现c-wiz 有class aria-multiselectable,这是唯一的一个。所以,我添加了//c-wiz[@aria-multiselectable='true'],结果仍然是 1 of 1
然后,我进一步研究了HTML 代码,发现如果我有多张照片,每张照片都位于div 和class role 中。基于此,我可以使用xpath在两张照片之间导航
//div[@role='main' and not(@style)]//c-wiz[@aria-multiselectable='true']//c-wiz[@data-node-index]//div[@role='row']
上面的xpath 得到 2 个中的 1 个。因此,这个 xpath 意味着您可以选择任何照片,或者,我假设,您可以选择文件夹中显示的文档。从那里,一旦您点击照片或文档,使用以下xpath
driver.find_element(By.XPATH, "//div[@role='main' and not(@style)]//c-wiz[@aria-multiselectable='true']//c-wiz[@data-node-index]//div[@role='row'][1]").click()
您会看到class aria-selected 更改为True。从那里开始,您的Select 按钮理论上应该不再有@disabled 标记。
图片