是的,你可以将 import
语句放在函数内部,这样可以避免在导入 glbVars
时负担过大。修改后的代码如下所示:
def initialize_browser():
# 导入必要的模块
from selenium import webdriver
from selenium.webdriver.chrome.options import ChromeOptions
from selenium.webdriver.support.ui import WebDriverWait
# 实例化浏览器
options = ChromeOptions()
options.add_argument('log-level=3') # 仅记录错误日志。
options.add_argument('start-maximized') # 设置浏览器最大化
options.add_argument('--headless') # 启用无头模式
options.add_experimental_option('detach', True) # 设置浏览器在执行完测试脚本后不会自动关闭。'
options.add_experimental_option('excludeSwitches', ['enable-automation']) # 设置浏览器不显示提示信息
mydriver = webdriver.Chrome(options=options)
wait10s = WebDriverWait(mydriver, 10)
wait2s = WebDriverWait(mydriver, 2)
wait300s = WebDriverWait(mydriver, 300)
return mydriver, wait300s, wait10s, wait2s
在这个版本的代码中,你只需要在需要浏览器对象和等待对象时调用 initialize_browser()
函数即可。例如:
from glbVars import initialize_browser
# 获取浏览器和等待对象
driver, wait300s, wait10s, wait2s = initialize_browser()
# 在其他代码中使用浏览器和等待对象进行操作