我目前正在将selenium与python一起使用,并且我的webdriver是Firefox,我尝试了click事件,但是它不起作用
网站= www.cloudsightapi.com/api
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
import time
from selenium.webdriver.common.action_chains import ActionChains
import os
driver = webdriver.Firefox()
driver.get("http://cloudsightapi.com/api")
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, "dropzoneTarget")))
element.click()
Run Code Online (Sandbox Code Playgroud)
请帮忙 !!
通过javascript单击对我有用:
element = wait.until(EC.element_to_be_clickable((By.ID, "dropzoneTarget")))
driver.execute_script("arguments[0].click();", element)
Run Code Online (Sandbox Code Playgroud)
现在,另一个问题是单击该元素只会使您陷入更多麻烦。将打开一个文件上传弹出窗口。而且,问题是,您无法通过进行控制selenium。
解决此问题的常用方法是找到文件输入并将其值设置为要上传的文件的绝对路径,请参见:
在您的情况下,处于input隐藏状态,使其可见并向其发送路径:
element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "input.dz-hidden-input[type=file]")))
# make the input visible
driver.execute_script("arguments[0].style = {};", element)
element.send_keys("/absolute/path/to/image.jpg")
Run Code Online (Sandbox Code Playgroud)