【问题标题】:Selenium webdriver import issuesSelenium webdriver 导入问题
【发布时间】:2016-09-18 00:07:53
【问题描述】:

虽然这可能会回到对 Python 的 Import 行为的不完全理解,但我希望有人能解释为什么在 Selenium 的上下文中会发生以下情况。

如果我尝试from selenium import *,那么我会得到NameError: name 'webdriver' is not defined

如果我使用from selenium import webdriver,那么一切正常。

这是为什么?

【问题讨论】:

  • @ozgur 版本 2.53.6

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


【解决方案1】:

如果您查看 selenium 项目的顶级 __init__.py 文件,您会看到:

from selenium import selenium

所以它导入 selenium 实际上导入了 selenium.py 文件,其中没有任何名为 webdriver 的类、变量等。

这是 selenium 2.53.6 的模块层次结构:

selenium
 -- __init__.py
 -- selenium.py
 -- webdriver
    -- ... 

要实际导入webdriver 模块,您应该这样做:

from selenium import webdriver

【讨论】:

  • 那么有什么方法可以从 Selenium 导入所有内容吗?我的列表正在增加,包括 webdriver、Alerts、Keys 和现在的例外。有点乏味了。
  • 对不起,我对硒不熟悉。您在哪里导入警报、键和异常?
  • “从 selenium 导入 webdriver”、“从 selenium.webdriver.common.alert 导入警报”、“从 selenium.webdriver.common.keys 导入密钥”、“从 selenium.common.exceptions 导入 * "
  • 不幸的是,没有。如果要使用它们,则需要显式导入。顺便说一句,通配符导入可能会导致命名空间冲突,因此最好只导入您想要使用的内容。
猜你喜欢
  • 1970-01-01
  • 2018-11-27
  • 2020-08-05
  • 1970-01-01
  • 2019-04-27
  • 2013-02-28
  • 2011-12-14
  • 2011-12-25
  • 1970-01-01
相关资源
最近更新 更多