使用python和selenium在搜索框

时间:2016-12-23 17:26:21

标签: python selenium

我正在制作电影字幕下载脚本。我打算从www.isubtitles.net下载字幕。我在我的电脑中的所有电影的标题名为名单。所以我打算在上述网站的搜索框中逐个发送电影名称,搜索它们并从显示的第一个结果中下载字幕。我使用以下代码

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而不是firefox用于硒。

1 个答案:

答案 0 :(得分: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循环的 - 你不必循环遍历列表索引。