【问题标题】:Why Selenium & PhantomJS cannot find tag, but Selenium & Chromedriver can find tag?为什么 Selenium 和 PhantomJS 找不到标签,而 Selenium 和 Chromedriver 可以找到标签?
【发布时间】:2017-06-22 07:23:34
【问题描述】:

为什么在使用 PhantomJS Selenium 时这个特定的 URL 找不到标签,但使用 Chromedriver Selenium 时却可以找到它?

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.PhantomJS('c:/Users/info_000/AppData/Roaming/npm/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs.exe')
# driver = webdriver.Chrome('E:/Work/IdeaProjects/web_loaders/movie_scraper/chromedriver.exe')


url = 'https://gomovies.to/film/gilmore-girls-a-year-in-the-life-season-1-18045/'
print('opening %s' % url)
driver.get(url)
content = driver.find_element_by_class_name('mvi-cover')
content.click()
print('after click')
src = WebDriverWait(driver, 10).until(
    ec.presence_of_element_located((By.TAG_NAME, 'video'))
).get_attribute('src')

【问题讨论】:

  • 您能否考虑处理我们的 SO 志愿者为您之前的问题提供的答案,处理这些问题并在提出新问题之前接受/关闭这些讨论?谢谢
  • @DebanjanB,你是对的。但在问这个问题之前,我已经做了一些研究。关于“Selenium 找不到标签”问题的大多数答案要么使用等待,要么此标签在

标签: python selenium phantomjs


【解决方案1】:

我看到类为 'thumb mvi-cover' 而不是 'mvi-cover' 的元素。

content = driver.find_element_by_class_name('thumb mvi-cover')

【讨论】:

  • 你是对的。但这不是根本原因。这个元素有两个 CSS 类“thumb”和“mvi-cover”。您可以通过这些课程中的任何一个找到。 content.click() 行工作正常。但是之后如果使用 PhantomJS 则找不到
  • 尝试使用 sleep() 或调试它并等待驱动程序加载所有内容
  • 谢谢。但我已经试过了。它没有帮助。它只是用 Chromedriver 找到标签,用 PhantomJS 找不到这个标签
  • 尝试设置driver.set_window_size(1920, 1080)(可以在driver.get()之前做)
猜你喜欢
  • 2021-01-10
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多