是的,你可以将 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()
# 在其他代码中使用浏览器和等待对象进行操作
文章讲述了如何将Selenium库的import语句放在函数内部,以减少`glbVars`导入时的性能负担。通过示例展示了如何在需要时动态创建浏览器对象和等待对象,以及如何在代码中使用这些对象进行无头浏览器操作。

被折叠的 条评论
为什么被折叠?



