2016-02-28 116 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()不工作,因爲你提到「輸入」是隱藏的,我不能改變!你現在的建議是什麼? –