问题描述
我正在使用Python Selenium制作某种类型的Google图像的Python控制台版本。我已经找到打开它的部分,然后单击相机图标。不幸的是,我不知道让您拖动图像的框的ID或类是什么,因为当我尝试使用显示为“元素不可交互”的框中的ID时, 到目前为止的代码:
from selenium import webdriver
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://images.google.com")
print("Googlen't Images")
image_query = input("Enter path where image is: ")
cameraicon = driver.find_element_by_class_name("BwoPOe")
cameraicon.click()
time.sleep(2)
Box = driver.find_element_by_id("dRSWfb") #this is the one that gives "element not interactable" error
Box.send_keys(image_query)
有人可以帮忙吗?
解决方法
首先:错误的行号为send_keys()
,而不是find_...
-因此您在代码中的注释会产生误导。
问题是"dRSWfb
是<div>
,您无法将密钥发送到<div>
。 <div>
内是<input>
,您应该获取并发送密钥。
此<input>
的ID为Ycyxxc
box = driver.find_element_by_id("Ycyxxc")
box.send_keys(image_query)
我不知道如何拖放Selenium
(如果可能的话),但是DevTools
中的Firefox
显示事件dragover
和{{ ID为drop
的{{1}}的1}}
编辑:要发送本地文件,可以使用第二个标签上的按钮<div>
而不是QDMvGf
您可以使用ID Browse
drag'n'drop
最小工作代码
awyMjb