我们正在尝试为 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 用户。