我试图理解一个与以下内容非常相似的代码片段:
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
port_number = "127.0.0.1.8888"
chrome_options.add_experimental_option("someAddressName", port_number)
我试图寻找解释,但直到现在还没有得到任何满意的答案。有人可以解释的任务Options()
和add_experimental_option
特别?
谢谢你
WebDriver 实现接受它们尝试自动化的浏览器的配置信息的方式是通过称为“功能”的概念。启动会话(启动浏览器)时,用户指定他们希望启动的驱动程序支持哪些功能。这可能包括接受自签名 SSL 证书的能力、浏览器的配置文件设置或任何数量的其他内容。
然而,此模型的挑战之一是它是作为字典实现的,键值对由任意字符串的键和任意类型对象的值组成。这里有两个潜在的问题。首先是能力名称很容易忘记或打错,并且可能不是所有浏览器都支持。此外,在实际执行代码之前不可能知道这一点。至于值,通常,驱动程序期望与它支持的名称关联的值是特定类型的,而且这在驱动程序实现之间可能会有很大差异。
输入选项类。这些构造为特定驱动程序可能期望的各种功能提供设置器。它可以强制通过功能字典传递给驱动程序的名称是正确的,并且可以对值强制类型安全。但是,大多数驱动程序实现(Chromium 项目的chromedriver
、Mozilla 的geckodriver
、Microsoft 的MicrosoftWebDriver
Edge 浏览器等)不是由 Selenium 项目构建或维护的。可能的情况是驱动程序提供者发布了一个新的驱动程序版本,该版本理解 Selenium 项目没有时间在该驱动程序的选项类中创建类型安全设置器的新功能。
因此,在 Selenium 的下一个版本发布之前,用户不会被阻止使用新功能,选项类具有“添加一个尚无类型安全设置器的附加选项”方法。在 Python 中,您的示例看起来就是用 Python 编写的,该方法称为add_experimental_option
. 该方法通常旨在暂时使用,直到 Selenium 项目可以推送一个新版本,该版本包含一个类型安全设置器,用于驱动程序实现者(在您的示例中为 Chrome 驱动程序)添加的任何新选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句