我正在制作电影字幕下载脚本。我打算从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用于硒。
答案 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循环的 - 你不必循环遍历列表索引。