我正在尝试将图像导入Google表单。我无法通过xpath将密钥传递给元素。看来这是一个隐藏的元素。

我试图执行脚本来取消隐藏它,但是没有成功。
还尝试了此解决方案:
How to access hidden file upload field with Selenium WebDriver python

Python-Selenium "input type file" upload

是否有人有通过拖放文件对话框导入到Google表单的方法?

我通常会收到一个错误:

NoSuchElementException: no such element: Unable to locate element:


我正在发送一些伪代码:

from selenium import webdriver


browser = webdriver.Chrome()




browser.get('ANY GOOGLE FORM URL')


browser.find_element_by_xpath('//*[@id="mG61Hd"]/div/div[2]/div[2]/div[5]/div/div[3]/span/span').click()


fileinput = browser.find_element_by_xpath("//div[contains(@class,'Nf-Er-Xr')]")
fileinput.send_keys('some image path')

最佳答案

单击Google表单中的“添加文件”按钮时,它会弹出一个弹出窗口,即iframeiframe基本上是嵌入另一个页面的HTML页面。为了对其进行处理,您必须告诉Selenium将上下文切换到该iframe

检查this SO问题,该问题说明了如何将上下文切换到iframe。对于您的特定情况(即Google表单),代码为―

iframe = driver.find_element_by_class_name('picker-frame')
driver.switch_to.frame(iframe)
input_field = driver.find_element_by_xpath('//input[@type="file"]')

关于python - 在python中通过Selenium Webdriver将图像导入Google表单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56595699/

10-12 22:30