循环时我应该在哪里实例化我的 WebDriver 实例?
Where should I instantiate my WebDriver instance when looping?
我正在迭代用于屏幕抓取的链接列表。这些页面有 JavaScript 所以我使用 Selenium。我定义了一个函数来获取每个页面的源代码。
我应该在该函数中实例化 WebDriver
吗?每个循环会发生一次?
或者我应该在函数外部实例化并将 WebDriver
传入?
或者将 WebDriver
分配给一个从函数内部可见的变量,而不显式传递它?
WebDriver
的每个实例化都会启动一个新的浏览器,这是一项非常昂贵的操作,因此选项 1 不是您想要的。
我也不会选择选项 3,因为在很容易避免的情况下依赖全局变量并不是好的编码习惯。
剩下选项 2:实例化 WebDriver
一次并将实例传递给您的函数。
我正在迭代用于屏幕抓取的链接列表。这些页面有 JavaScript 所以我使用 Selenium。我定义了一个函数来获取每个页面的源代码。
我应该在该函数中实例化
WebDriver
吗?每个循环会发生一次?或者我应该在函数外部实例化并将
WebDriver
传入?或者将
WebDriver
分配给一个从函数内部可见的变量,而不显式传递它?
WebDriver
的每个实例化都会启动一个新的浏览器,这是一项非常昂贵的操作,因此选项 1 不是您想要的。
我也不会选择选项 3,因为在很容易避免的情况下依赖全局变量并不是好的编码习惯。
剩下选项 2:实例化 WebDriver
一次并将实例传递给您的函数。