【问题标题】:Selenium with GhostDriver in Python on WindowsWindows 上 Python 中的 Selenium 和 GhostDriver
【发布时间】:2014-03-13 04:13:53
【问题描述】:

问这个问题很尴尬,因为这似乎是一个错误几率很小的事情。我不认为这会很困难,但我已经坚持了将近 3 个小时,这让我很头疼。我已经阅读了几十个 stackoverflow 线程和 Google 线程。

我已经安装了 PhantomJS,将它添加到我的系统变量 PATH 中,并且它在命令行中可以正常工作。我之前还使用 easy_install 安装了 Selenium。

我得到的错误是:

__init__    C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\webdriver.py   50      

start   C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py 66      

WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen               

这是我的代码:

from selenium import webdriver

driver = webdriver.PhantomJS(executable_path="C:\Python27\misc\phantomjs\phantomjs.exe")

我也试过了:

from selenium import webdriver

driver = webdriver.PhantomJS()

我收到相同的错误消息。这一定很简单,我做错了。我会很感激任何 cmets 或答案。

Windows 7 64 位 Python 2.7

【问题讨论】:

  • 是的,我复制了那个路径并粘贴了它,没有错误。我也只是在命令行中运行它并更改为“phantomjs>”。所以一切都很好。我在想这可能是版本不匹配还是什么?这真的难倒我。
  • 1.9.7.路径为:C:\Python27\misc\phantomjs\
  • 我无法复制它。请尝试放入另一条路径,然后重试。错误消息说路径错误。
  • 是的,我在发布之前已经尝试过了。这么奇怪。当我说版本不匹配时,我在考虑 Selenium 和 PhantomJS 但它们今天都是新安装的。
  • 越来越陌生了。我将每个/更改为//然后在pyscripter中运行未保存的python脚本,它给了我错误:IOError:[Errno 13] Permission denied:'ghostdriver.log'。我认为这是进步。然后我保存了它,错误又回来了。此问题与路径的引用或路径的解释方式有关。

标签: python selenium phantomjs ghostdriver


【解决方案1】:

您是否有任何其他具有相同名称的文件或目录,或者您命名为与phantomjs 相同的编码文件(如 ..phantomjs.py),然后将其重命名为其他名称。我希望它有效

【讨论】:

    【解决方案2】:

    我在 Windows Server 2012 R2 上运行 Python 3.4 时遇到了同样的问题。 PhantomJS 未能创建 ghostdriver.log 文件。我按照以下步骤为我修复了它:

    • 确保 phantomjs.exe 在文件属性|安全选项卡上未显示“已阻止”,并将其作为独立应用程序运行以确认。
    • 删除了位于同一目录中的 ghostdriver.log 文件的旧副本
    • 从控制台运行 python REPL,同时检查实例化驱动程序的代码是否被成功调用。

      browser = webdriver.PhantomJS(executable_path='phantomjs.exe', desired_capabilities=argdc, service_args=svc_args)
      

    【讨论】:

      【解决方案3】:

      这可能是您的版本问题,但由于我刚刚在我的 Windows 7 PC 上进行了设置,没有任何问题,我将在这里分享我的“旅程”。

      首先,我更习惯于 Mac/Linux 终端,并且拥有 python 包管理器pip 对我来说至关重要。在安装Python 2.7.8 并添加;c:\Python27 to my PATH 之后,我注意到pip 不包含在低于2.7.9 的Python 版本中,所以我had to add it myself。之后我将 ;c:\Python27\Scripts 添加到我的 PATH 中。

      之后,获取 python 包 selenium 就像在 cmd 中输入以下内容一样简单:

      pip install selenium
      

      然后我从here下载了phantomjs-1.9.7-windows.zip,解压后放在这里:

      C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe
      

      从那里我有一个适用于 Windows 7 的 Python 2.7/Selenium Webdriver/PhantomJS 示例。

      from selenium import webdriver
      import os
      
      phantomjs_path = "C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe"
      
      browser = webdriver.PhantomJS(executable_path=phantomjs_path, service_log_path=os.path.devnull)
      browser.set_window_size(1400, 1000)
      
      browser.get("https://stackoverflow.com/")
      
      print browser.title
      

      请注意,我在函数webdriver.PhantomJS() 中添加了参数service_log_path=os.path.devnull,以防止PhantomJS 在正在执行的python 文件的目录中创建ghostdriver.log。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        相关资源
        最近更新 更多