python - 循环时我应该在哪里实例化我的 WebDriver 实例?

标签 python selenium

我正在迭代一个用于屏幕抓取的链接列表。这些页面有 JavaScript,所以我使用 Selenium。我定义了一个函数来获取每个页面的源代码。

  1. 我是否应该在该函数中实例化 WebDriver,每个循环会发生一次?

  2. 或者我应该在函数外部实例化并将 WebDriver 传入?

  3. 或者将 WebDriver 分配给一个从函数内部可见的变量,而不显式传递它?

最佳答案

WebDriver 的每次实例化都会启动一个新的浏览器,这是一项非常昂贵的操作,因此选项 1 不是您想要的。

我也不会选择选项 3,因为在很容易避免的情况下依赖全局变量并不是好的编码习惯。

这给您留下了选项 2:实例化 WebDriver 一次并将实例传递给您的函数。

关于python - 循环时我应该在哪里实例化我的 WebDriver 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28514950/

相关文章:

python - 并行读取大文件?

Python子进程超时?

python - 如何将图的节点/顶点表示为字母或名称值而不是数字

具有多种类型和多个数据绑定(bind)的 Python Selenium HTML 类

c# - WebDriverWait 没有在等待我指定的元素

javascript - Selenium - {[[PromiseStatus]] : "pending"} has no method 'indexOf'

python - 使用 scrapy 抓取项目

python - 如何在 Python 中添加减去的日期值

Python - Firefox headless (headless)

python - 在 Selenium 中的特定位置打印网页