我目前正在使用selenium和python,我的webdriver是firefox 我尝试了点击事件,但它不起作用
website = 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()
请帮忙!!
答案 0 :(得分:4)
点击通过javascript 为我工作:
element = wait.until(EC.element_to_be_clickable((By.ID, "dropzoneTarget")))
driver.execute_script("arguments[0].click();", element)
现在,另一个问题是单击该元素只会让您陷入更多麻烦。将打开一个文件上载弹出窗口。而且,问题是,您无法通过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")