使用python和selenium在搜索框中输入文本

2024-09-22 16:37:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个电影字幕下载脚本。我计划从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在我们发送键的行中抛出错误“element not currently interactive and may not be operated”。请看看网站的html和python代码,告诉我做错了什么。我使用的是phantomjs而不是firefox for selenium。在


Tags: 代码browser列表fornet电影wwwnot
1条回答
网友
1楼 · 发布于 2024-09-22 16:37:09

您应该wait for the search input to be visible with ^{}

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循环的—您不必遍历列表索引。在

相关问题 更多 >