如何为 Firefox 设置 Selenium Python 环境

问题描述 投票:0回答:5

如何为 Firefox 设置 Selenium Python 环境?

我使用的是 Firefox 50、Selenium 3、Python 3.5。我尝试了很多二进制文件并在环境变量PATH等中复制geckodriver。

python selenium automation selenium-firefoxdriver
5个回答
24
投票
测试机器应有Selenium v.3.0.2、Firefox v.51.0.1(最新版本)和geckodriver v.0.14。如果您使用的是 Linux,请执行以下步骤:

[在 GitHub 上查找

最新版本或从 API )并用其替换 wget 链接。下载并安装过时的版本可能会导致“错误”行为。]

apt-get update apt-get install firefox pip3 install selenium==3.0.2 wget https://github.com/mozilla/geckodriver/releases/download/vX.XX.0/geckodriver-vX.XX.0-linuxXX.tar.gz -O /tmp/geckodriver.tar.gz \ && tar -C /opt -xzf /tmp/geckodriver.tar.gz \ && chmod 755 /opt/geckodriver \ && ln -fs /opt/geckodriver /usr/bin/geckodriver \ && ln -fs /opt/geckodriver /usr/local/bin/geckodriver
从可用的压缩预构建二进制文件中选择适合您的操作系统的版本。

这是一个运行示例:

from selenium import webdriver driver = webdriver.Firefox() driver.get('http://google.com') print(driver.title) driver.quit()
    

11
投票
据我了解,您想使用 Python 进行开发,使用 Selenium 库并使用 Firefox Webdriver。

    安装 Python(Python 3 已包含 pip)
  1. 安装Selenium(
  2. pip install selenium
    一些IDE,如PyCharm建议安装库,只需导入Selenium)
    
  3. 下载
  4. Mozilla 网络驱动程序
  5. 享受吧!

1
投票
  1. 在 Windows 中从以下位置安装 Python:

    https://www.python.org/downloads/

  2. 然后从命令行运行 pip install:

    pip install selenium

    
    

  3. 下载 Gecko/Chrome/Internet Explorer 驱动程序并将 driver.exe 路径添加到 PATH 环境变量中。因此需要在运行 Selenium driver.Firefox() / driver.Chrome() 方法时设置路径。


0
投票
如果您使用的是 Ubuntu 和最新的 Firefox。由于 Firefox 现在已快速捆绑,您可能会发现一些问题。

要解决驱动程序无法连接到firefox的问题,您需要使用snap捆绑的驱动程序。

我在这里捆绑了一个准备好的示例:

https://github.com/beliaev-maksim/firefox-selenium

但是,为了快速访问这里的是conftest.py 的内容,用于快速设置驱动程序固定装置

import pytest from selenium import webdriver from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.service import Service @pytest.fixture(scope='session') def driver(request): """Set up webdriver fixture.""" options = Options() options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') service = Service(executable_path="firefox.geckodriver") driver = webdriver.Firefox(options=options, service=service) driver.set_window_size(1920, 1080) driver.maximize_window() driver.implicitly_wait(10) yield driver driver.quit()
    

0
投票

Selenium 4.6.0开始,您不需要手动安装Selenium Manager(webdriver-manager),如下所示,因为根据博客它已经包含在Selenium中

pip install webdriver-manager
并且,从

Selenium 4.11.0开始,下面的代码就足够了,因为Selenium Manager可以自动发现您机器中安装的浏览器版本,然后可以根据博客自动下载合适的驱动程序版本:

from selenium import webdriver driver = webdriver.Firefox()
此外,下面的示例可以使用 Chrome、

Seleniumpytest-djangoDjango 来测试 Django Admin。 *我的回答解释了如何使用多个Headless浏览器(Chrome、Microsoft Edge和Firefox)、Selenium、pytest-django和Django测试Django Admin:

# "tests/test.py" import pytest from selenium import webdriver from django.test import LiveServerTestCase @pytest.fixture(scope="class") def firefox_driver_init(request): firefox_driver = webdriver.Firefox() request.cls.driver = firefox_driver yield firefox_driver.close() @pytest.mark.usefixtures("firefox_driver_init") class Test_URL_Firefox(LiveServerTestCase): def test_open_url(self): self.driver.get(("%s%s" % (self.live_server_url, "/admin/"))) assert "Log in | Django site admin" in self.driver.title
或者:

# "tests/conftest.py" import pytest from selenium import webdriver @pytest.fixture(scope="class") def firefox_driver_init(request): firefox_driver = webdriver.Firefox() request.cls.driver = firefox_driver yield firefox_driver.close()
# "tests/test.py"

import pytest
from django.test import LiveServerTestCase

@pytest.mark.usefixtures("firefox_driver_init")
class Test_URL_Firefox(LiveServerTestCase):
    def test_open_url(self):
        self.driver.get(("%s%s" % (self.live_server_url, "/admin/")))
        assert "Log in | Django site admin" in self.driver.title
    
© www.soinside.com 2019 - 2024. All rights reserved.