selenium和python3:在www.rottentomatoes.com上选择搜索框

时间:2017-02-16 13:05:34

标签: python python-3.x selenium selenium-webdriver

我有一个电影列表,我想从烂片www.rottentomatoes.com获得评论,但我遇到了障碍。

我想要的是能够将每部电影的标题传递给网站搜索框,然后处理结果以获得我想要的评论。

目前,我无法超越搜索阶段,因为我无法成功找到搜索框。

我的代码如下所示:

before_update :check_catchments

def check_catchments 
  errors.add(:catchments, "Values must check") unless catchments_check? || new_record? 
end

def catchments_check?
  catchment == portion_catchments
end

def portion_catchments
  payment_portions.sum(:catchments)
end

我得到了输出:     找不到搜索框

有人可以帮我找一下我做错的事吗? 如果这太基本了,请道歉,我是编程和python的新手。

1 个答案:

答案 0 :(得分:1)

这只是区分大小写的问题。

您使用WebdriverWait(小写d)代替WebDriverWait

注意:使用trackback模块打印堆栈跟踪以了解异常详细信息。

请尝试以下代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import traceback

browser = webdriver.Chrome(`/home/zona/chromedriver`)
url = 'https://www.rottentomatoes.com/'
browser.get(url)
time.sleep(5)

try:
    element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH,'//body//input[@name="search"]')))
    # element =  browser.find_element_by_xpath('//body//input[@name="search"]')
    element.clear()
    element.send_keys("avatar")
except:
    traceback.print_exc()
    print("cound not find search box")

time.sleep(5)
browser.quit()