如何在不自动打开浏览器的情况下定义 driver = webdriver.Firefox?

时间:2021-06-28 16:36:11

标签: python selenium webdriver

以下是我的简化代码:

from selenium import webdriver

driver = webdriver.Firefox(executable_path=r"F:\geckodriver.exe")

class Acesso():
    def __init__(self):
        driver.get(link)

    def scroll():
        # Function
    driver.click()

    def url():
        # driver.get("https://google.com")

Acesso()

这样编写会使浏览器在我定义 driver 变量后立即打开。有什么方法可以在不自动打开浏览器的情况下定义 webdriver.Firefox() 吗?我的目标是在我的 driver 函数中定义 __init__ 变量,以便我可以向它传递参数。像这样:

def __init__(self, agent):
    self.agent = agent
    driver = webdriver.Firefox(executable_path=r"F:\geckodriver.exe",firefox_profile=agent)

我的问题是这样写我不能在其他函数中使用 driver 变量,如果我为每个函数定义变量,浏览器将在任何函数调用时自动打开。有什么解决办法吗?

3 个答案:

答案 0 :(得分:0)

试试这个:创建驱动程序变量,但将其初始化为 None。

然后,在每个使用它的函数中,检查它是否为 None,如果是,则将其设置为 Firefox(...) -- 如果不是 None,则假设它已设置为 Firefox 浏览器并继续进行.

然后浏览器应该打开第一个函数并保持打开状态/其余部分可以重用。

答案 1 :(得分:0)

from selenium import webdriver

try:
    fireFoxOptions = webdriver.FirefoxOptions()
    fireFoxOptions.set_headless()
    brower = webdriver.Firefox(firefox_options=fireFoxOptions, executable_path=r"F:\geckodriver.exe")

答案 2 :(得分:0)

找到了将 driver 变量设置为 global 的解决方案。现在我可以在我的函数内部定义并仍然在其他函数上使用它。

相关问题