在IE中使用IE硒驱动程序

问题描述

我试图定义IE Web驱动程序以与python一起使用时,

im出现了一些我无法理解的错误。 maby,我必须在Internet Explorer上更改一些安全设置吗? 我有Interent Explorer版本11 谢谢。

from selenium import webdriver

driver = webdriver.Ie(executable_path=r"C:\Users\cohe\PycharmProjects\Testing\IEDriverServer.exe")

i got some errors:

Traceback (most recent call last):
  File "C:/Users/cohe/PycharmProjects/Testing/Shrepoint.py",line 3,in <module>
    driver = webdriver.Ie(executable_path=r"C:\Users\cohe\PycharmProjects\Testing\IEDriverServer.exe")
  File "C:\Users\cohe\AppData\Roaming\Python\python38\site-packages\selenium\webdriver\ie\webdriver.py",line 54,in __init__
    warnings.warn('executable_path has been deprecated,please pass in a Service object',NameError: name 'warnings' is not defined

注意:我正在使用硒4.0.0a1

解决方法

您所使用的Selenium 客户端的版本尚不清楚。但是, Selenium Python 客户端的最新稳定版本是 v3.141.0

SeleniumPythonAlpha

因此对于生产环境,您需要使用 Selenium 3.141.0

,而不是 Selenium 4.0.0a1

此外,当您使用原始开关(即r)时,您需要使用单引号而不是双引号。实际上,您的代码行将是:

driver = webdriver.Ie(executable_path=r'C:\Users\cohe\PycharmProjects\Testing\IEDriverServer.exe')
,

您正在使用什么版本的硒?

如果您看一下python硒绑定here

您可以看到2个关键部分:

 - executable_path - Deprecated: path to the executable. If the default is used it assumes the executable is in the $PATH

if executable_path != 'IEDriverServer.exe':
            warnings.warn('executable_path has been deprecated,please pass in a Service object',DeprecationWarning,stacklevel=2)

这些已从selenium 4 alpha 1 bindings中删除。

您的第一个也是最好的选择:

假设您拥有最新的v4硒-正在进行alpha测试,并且可能会进一步频繁更改。除非您需要尖端功能,否则您可能需要将版本回滚到最新的稳定版本。那应该再次允许可执行文件路径。

下一个选项: 仅在尝试并指定路径时抛出错误/警告。提示出在您的错误中:

'executable_path已被弃用,请传递服务对象'

因此,请不要指定它:-)

您可以尝试:

  1. 将您的IeDriverSerice.exe位置添加到PATH变量中。
  2. 将IeDriverService.exe文件放置在与脚本相同的位置。然后,您不必指定它,可以将其保留为默认值
  3. 创建一个服务对象,看看它是否接受二进制路径。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...