问题描述
我正在尝试使用Selenium将Google幻灯片共享到电子邮件中,但是找不到向其发送密钥的元素。我尝试在几个不同的元素上使用driver.find_element_by
命令,但无法识别。这是我要输入的屏幕截图。 https://i.stack.imgur.com/AxKkK.png
我的一些尝试
sharetab=driver.find_element_by_class_name('exportFieldContainer boqDriveElementscoreWebFormfield_baseFieldContainer boqDriveElementscoreWebFormfield_filledFieldContainer isAssistiveTextSuppressed isDensityCozy')
sharetab.send_keys('[email protected]')
sharetab=driver.find_element_by_id('id-3wipxg--j8nc63-pprkit')
sharetab.send_keys('[email protected]')
解决方法
“共享”标签有很多区别。由于我不知道您确切地停留在哪里,因此我将为所有人提供解决方案。
第一部分是,名称条目的共享弹出窗口位于iframe中。因此,首先,您必须转到该位置(在获取文本框之前)。
Share Iframe的CSS选择器是:
body > div.modal-dialog.share-client-dialog.full-screen-share-client-dialog.team-drive-share-client-dialog > div.modal-dialog-content > iframe
您应该这样使用它:
iframe = driver.find_element_by_css_selector('body > div.modal-dialog.share-client-dialog.full-screen-share-client-dialog.team-drive-share-client-dialog > div.modal-dialog-content > iframe')
driver.switch_to.frame(iframe)
现在要解决另一个难题:元素很多,但是文本字段/文本框是您可以在其中发送键的元素。要发现(在将来的情况下),请尝试在使用开发人员工具的同时输入内容,以检查突出显示的任何元素或检测到任何更改。
“共享”标签中文本字段的css选择器为
#_c118
像这样使用
:txtbox = driver.find_element_by_css_selector('#_c118')
txtbox.send_keys('[email protected]') #You could put any text in the send keys function
希望这可以解决您的问题!