模块“selenium.webdriver”没有属性“PhantomJS”

Posted

技术标签:

【中文标题】模块“selenium.webdriver”没有属性“PhantomJS”【英文标题】:module 'selenium.webdriver' has no attribute 'PhantomJS' 【发布时间】:2018-06-07 09:41:39 【问题描述】:

我正在运行 PhantomJS

driver = webdriver.PhantomJS(executable_path='E:\phantomjs\bin\phantomjs.exe')

但是程序失败了,说

AttributeError:。

操作系统是 Windows 10。 我的python版本是3.6,selenium版本是3.8.0,phantomjs版本是2.1.1。它们都是最新的。

如果有人能提供帮助,谢谢!

以下是selenium version的截图。

【问题讨论】:

您是否有一个名为 selenium.py 的本地模块/文件? PhantomJS 支持已被弃用,但您仍然应该(在 3.8.0 中)能够执行webdriver.PhantomJS(...),其中webdriver 以这种方式导入:from selenium import webdriver 是的,这正是我编写的代码。 【参考方案1】:

当您在路径中使用单引号 (\) 时,您应该传递原始 (r) 开关,如下所示:

driver = webdriver.PhantomJS(executable_path=r'E:\phantomjs\bin\phantomjs.exe')

更新:

如果错误仍然存​​在,请通过 Command Prompt 检查以下内容:

查看Selenium版本:

>pip show -V selenium

你必须看到这样的输出:

Name: selenium
Version: 3.8.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache 2.0
Location: c:\python\lib\site-packages
Requires:

检查所有已安装的packages

>pip freeze

你必须看到这样的输出:

Selenium==3.8.0

如果以下命令Fails 表示Selenium 没有正确安装。所以你必须这样做:

>pip install -U selenium

您也可以卸载 Selenium并再次安装,如下所示:

>pip uninstall selenium
>pip install -U selenium

这是完整的Installation Instructions 供您参考。

【讨论】:

建议很好,但我无法理解它与 OP 错误的关系。 @alecxe 谢谢。这是我一开始就怀疑的。但增加了进一步的步骤。如果Answer 看起来不错,请告诉我。 谢谢。但是我已经检查了你写的内容,结果已添加到问题的末尾。看来问题与此无关。【参考方案2】:

我已经解决了这个问题。 原因是我使用pycharm作为IDE。我使用虚拟环境创建项目。这就是为什么我不能使用我安装的库。

无论如何,谢谢你的帮助!

【讨论】:

你应该使用 cmets【参考方案3】:

您的问题不在于代码或任何问题是 Selenium 社区在新版本中停止支持 PhantomJS,因此每次您尝试拉取 PhatomJs 库时它都不存在。 在文档中它说他们目前支持 https://www.selenium.dev/selenium/docs/api/py/api.html

【讨论】:

【参考方案4】:

当我在谷歌中寻找答案时,我提请注意这个问题。我花了相当多的工作才找到它的答案,所以为了为别人节省一些工作,虽然这个问题已经过去了很多时间,但我建议你现在不要使用 PhantomJS。在 Selenium https://www.selenium.dev/documentation/getting_started/installing_browser_drivers/ 的官方网站上,您可以阅读以下引述:“PhantomJS 是一个基于 Webkit 的无头浏览器,尽管版本比 Google Chrome 或 Safari 使用的版本旧得多。虽然在历史上它是一种流行的选择,但现在它是明智的为了避免 PhantomJS。该项目自 2017 年 8 月 5 日以来一直无人维护,因此尽管网络将继续发生变化,但 PhantomJS 不会更新。这是在 Google 宣布能够无头运行 Chrome 之后,Mozilla 的 Firefox 现在也提供了这一功能."。我换成了 Mozilla 的 Firefox(我无头使用它)。

【讨论】:

以上是关于模块“selenium.webdriver”没有属性“PhantomJS”的主要内容,如果未能解决你的问题,请参考以下文章

From  selenium  import  webdriver

selenium webdriver学习,选择模块,点击下一页,获取当前url

软件测试|| 坐好小板凳,咱们一起看看Selenium WebDriver如何安装。

Selenium 错误消息“selenium.webdriver 没有属性执行脚本”

selenium+python - webdriver​模拟键盘ENTER没有效果

即使没有错误,也无法使用Selenium Webdriver注册零售网站