我正在尝试将图像导入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表单中的“添加文件”按钮时,它会弹出一个弹出窗口,即iframe
。 iframe
基本上是嵌入另一个页面的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/