【问题标题】:selenium and python3: selecting search box on www.rottentomatoes.comselenium 和 python3:在 www.rottentomatoes.com 上选择搜索框
【发布时间】:2017-02-16 13:05:33
【问题描述】:

我有一份想要从 rotten www.rottentomatoes.com 获得评论的电影列表,但我遇到了障碍。

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

目前无法超越搜索阶段,因为一直未能成功定位到搜索框。

我的代码如下图:

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

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

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:
    print("cound not find search box")

time.sleep(5)
browser.quit()

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

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

【问题讨论】:

  • 你能分享一下确切的错误堆栈跟踪吗??
  • 请注意,except 没有明确的异常名称将捕获所有错误。你最好用except TimeoutException
  • 是否有某些原因您没有使用 ID search-term
  • 进行 Naveen 推荐的更改后,代码运行良好。感谢您的所有建议。我也尝试过使用 id=search-term 并且也可以。

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


【解决方案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()

【讨论】:

  • 在进行 Naveen 推荐的更改后,代码现在可以按我的预期工作。谢谢纳文。
猜你喜欢
  • 2018-04-13
  • 1970-01-01
  • 2021-01-04
  • 2015-09-05
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多