【问题标题】:Selenium with Python keeps to load a pageSelenium 与 Python 保持加载页面
【发布时间】:2016-09-30 12:59:41
【问题描述】:

我正在尝试使用简单的 Python/Selenium 脚本读取页面

# encoding=utf8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import datetime as dt
import codecs
import os

myDriver=webdriver.Chrome()
myDriver.get("http://spb.beeline.ru/customers/products/mobile/tariffs/")
print "Test"
myDriver.quit()

现在,如果我使用谷歌浏览器打开该网址,页面就会加载,仅此而已。 通过此脚本执行此操作时,页面仍处于加载状态,脚本无法继续执行。

我在 Windows 7 上,使用 Python 2.7.12、Selenium 2.53.6 和 chromedriver 2.24.41.74.31

【问题讨论】:

  • 我已经检查过了,效果很好

标签: python selenium selenium-chromedriver


【解决方案1】:

我不确定该页面在做什么,但它肯定是非典型的。我最好的建议是设置页面加载超时,然后处理相关的 TimeoutException:

# encoding=utf8
from __future__ import print_function

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

myDriver=webdriver.Chrome()

try:
    # Set the page load timeout
    myDriver.set_page_load_timeout(10)
    try:
        myDriver.get("http://spb.beeline.ru/customers/products/mobile/tariffs/")
    except TimeoutException:
        print("Page expired")

    # Do stuff here

finally:
    myDriver.quit()

不利的一面是(我认为)这将杀死后台发生的任何阻止 driver.get 调用返回的事情,因此某些页面功能可能会从根本上被破坏。

【讨论】:

  • 所以你有同样的问题..很高兴看到!我不明白的一点是为什么在普通的 chrome 实例中它正确加载,而在 chromedriver 中,这没有发生。
  • 是的,特定于该页面的内容始终处于加载状态。
  • @user3385666 尝试使用另一个浏览器/另一个 URl,看看是否存在问题。当我尝试时,您的代码就像一个魅力。我用的是火狐浏览器。 webdriver.Firefox() 和我的网速也很好。
猜你喜欢
  • 1970-01-01
  • 2017-05-07
  • 2021-01-18
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
相关资源
最近更新 更多