click()在selenium中不起作用

时间:2016-02-28 14:10:53

标签: python selenium

我目前正在使用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()

请帮忙!!

1 个答案:

答案 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")