2016-02-28 134 views
0

我目前使用的硒与蟒蛇的工作和我的webdriver是火狐 我尝试了点击事件,但它不工作点击()不硒

网站= 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() 

请帮忙!!

回答

3

通过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") 
+0

谢谢为你的帮助! send_keys()不工作有没有办法从本地计算机拖放图像? –

+0

@RahulRao无法用selenium拖放浏览器。关于send_keys - 不工作是什么意思? (为我工作了一个JPG图像样本)谢谢。 – alecxe

+0

我的意思是在我的情况下send_keys()不工作,因为你提到“输入”是隐藏的,我不能改变!你现在的建议是什么? –