2016-12-23 64 views
1

我正在建立一個電影字幕下載腳本。我打算從www.isubtitles.net下載字幕。我在名爲名單的電腦中擁有所有電影的標題。所以我打算在上述網站的搜索框中逐個發送電影名稱,搜索它們並從顯示的第一個結果中下載字幕。我使用下面的代碼使用python和selen在搜索框中輸入文字

homeurl="http://www.isubtitles.net" 
for i in range (0, len(namelist)): 
    browser.get(homeurl) 
    searchele=browser.find_element_by_name("kwd") 
    searchele.send_keys(namelist[i]) 
    searchele.submit() 

但python拋出錯誤「元素當前不可交互,可能不會被操縱」在我們發送密鑰的行。請看網站的html和python代碼,並告訴我做了什麼錯誤。我使用phantomjs,而不是硒火狐。

回答

1

您應該wait for the search input to be visible with WebDriverWait

wait = WebDriverWait(browser, 10) 

for name in namelist: 
    browser.get(homeurl) 

    searchele = wait.until(EC.visibility_of_element_located((By.NAME, "kwd"))) 
    searchele.send_keys(name) 
    searchele.submit() 

另外請注意我是如何提高你的for循環 - 你不必遍歷目錄索引。

+0

現在它給了timeoutException。我也嘗試增加等待時間,但仍然存在錯誤。 – dreadedHarvester

+0

@dreadedHarvester有趣,我爲我工作,我記得。 – alecxe

相關問題