什么是 Google 图片的 ID 或 class 对应于允许您拖放图片的框?
What is Google Image's id or class that corresponds to the box that lets you drag and drop images?
我正在使用 Python Selenium 制作某种 Python 控制台版本的 Google 图片。我已经得到了它打开并单击相机图标的部分。不幸的是,我不知道允许您拖入图像的框的 id 或 class 是什么,因为当我尝试使用似乎是框的 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
中拖放(如果可能的话)但是 Firefox
中的 DevTools
显示事件 dragover
和drop
for <div>
with id QDMvGf
编辑: 要发送本地文件,您可以使用第二个选项卡上的按钮 Browse
而不是 drag'n'drop
您可以使用 id awyMjb
访问
box = driver.find_element_by_id("awyMjb")
box.send_keys(image_query)
最少的工作代码
from selenium import webdriver
import time
print("Googlen't Images")
image_query = input("Enter path where image is: ")
driver = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe")
#driver = webdriver.Firefox(executable_path='/home/furas/bin/geckodriver')
driver.get("https://images.google.com")
cameraicon = driver.find_element_by_class_name("BwoPOe")
cameraicon.click()
time.sleep(1)
# send word or url on first tab
#box = driver.find_element_by_id("Ycyxxc")
#box.send_keys(image_query)
# send local file on second tab
box = driver.find_element_by_id("awyMjb")
box.send_keys(image_query)
我正在使用 Python Selenium 制作某种 Python 控制台版本的 Google 图片。我已经得到了它打开并单击相机图标的部分。不幸的是,我不知道允许您拖入图像的框的 id 或 class 是什么,因为当我尝试使用似乎是框的 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
中拖放(如果可能的话)但是 Firefox
中的 DevTools
显示事件 dragover
和drop
for <div>
with id QDMvGf
编辑: 要发送本地文件,您可以使用第二个选项卡上的按钮 Browse
而不是 drag'n'drop
您可以使用 id awyMjb
box = driver.find_element_by_id("awyMjb")
box.send_keys(image_query)
最少的工作代码
from selenium import webdriver
import time
print("Googlen't Images")
image_query = input("Enter path where image is: ")
driver = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe")
#driver = webdriver.Firefox(executable_path='/home/furas/bin/geckodriver')
driver.get("https://images.google.com")
cameraicon = driver.find_element_by_class_name("BwoPOe")
cameraicon.click()
time.sleep(1)
# send word or url on first tab
#box = driver.find_element_by_id("Ycyxxc")
#box.send_keys(image_query)
# send local file on second tab
box = driver.find_element_by_id("awyMjb")
box.send_keys(image_query)