如何在 Python 3 中安装用于 Selenium 测试的 Microsoft Edge 驱动程序?

如何在 Python 3 中安装用于 Selenium 测试的 Microsoft Edge 驱动程序?

我们正在尝试为 Web 应用程序设置自动化测试环境。此 Web 应用程序将托管在 Ubuntu 服务器上。在 QA 环境中,我们正在尝试执行自动化测试。

环境信息如下:

  • 操作系统:Ubuntu 20.04 和/或 21.04
  • 使用的编程语言:Python3(3.8.10)
  • 自动化工具:Selenium
  • 所需浏览器:MS Edge

灵活性:

我们可以使用不同版本的 Python 或 Ubuntu 来实现这一点,但由于 MS Edge 是客户端首选的浏览器,因此无法用 Firefox 或其他可用浏览器替换。虽然我们可以使用不同版本的 Edge,如果它有效的话。并且我们能够在 Chrome 浏览器中成功测试. 我们可以使用不同的 Linux 发行版,只要它是稳定的版本。

我们已经尝试过什么?

还尝试遵循与 chrome 相同的说明。为了安装 chrome 驱动程序,我们遵循了“https://www.thenerdlife.com/blog/how-to-install-chromedriver-on-ubuntu/”。因此,我们对 edge 执行了相同的操作,并在脚本中将“chromedriver”替换为“msedgedriver”。

我们在 Ubuntu 20.04 上安装了 MS Edge (DEV v93.0.933.1)。至于 webdriver,我们在 'https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/' 上找到它,并将该文件复制到与 python 测试文件相同的位置。

我们还尝试将“msedgedriver”重命名为“MicrosoftWebDriver.exe”(与 python 程序一起放置的文件)。从 Windows 背景来看,这个东西通常有效。

Python 程序

from selenium import webdriver
driver = webdriver.Edge()
driver.get('https://www.google.com/')
> Traceback (most recent call last):
  File "/home/devang/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 72, in start
    self.process = subprocess.Popen(cmd, env=self.env,
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'MicrosoftWebDriver.exe'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/devang/GitHub/AutomationSampleTest/ieEdgeBrowse.py", line 3, in <module>
    driver = webdriver.Edge()
  File "/home/devang/.local/lib/python3.8/site-packages/selenium/webdriver/edge/webdriver.py", line 56, in __init__
    self.edge_service.start()
  File "/home/devang/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 81, in start
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'MicrosoftWebDriver.exe' executable needs to be in PATH. Please download from http://go.microsoft.com/fwlink/?LinkId=619687

编辑 还尝试了以下代码来传递驱动程序文件位置:

from selenium import webdriver
from selenium.webdriver.edge.options import Options
options = webdriver.EdgeOptions()
options.use_chromium = True
options.binary_location = "/home/devang/GitHub/AutomationSampleTest/msedgedriver"
driver = webdriver.Edge(options = options)
driver.get('https://www.google.com/') 

对于上述代码,它会引发不同的错误:

Traceback (most recent call last):
  File "/home/devang/GitHub/AutomationSampleTest/ieEdgeBrowse.py", line 3, in <module>
    options = webdriver.EdgeOptions()
AttributeError: module 'selenium.webdriver' has no attribute 'EdgeOptions'

问题:

是否可以使用 Python3 和 Selenium 在 Ubuntu 中对 MS Edge 进行自动化测试?

如果是,那怎么办?请将其分解为易于遵循的小步骤,因为我是新的 Ubuntu 用户。

相关内容