以下是我的简化代码:
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
变量,如果我为每个函数定义变量,浏览器将在任何函数调用时自动打开。有什么解决办法吗?
答案 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
的解决方案。现在我可以在我的函数内部定义并仍然在其他函数上使用它。