Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 为什么在硒中使用add_试验性_选项?_Python 2.7_Selenium_Selenium Chromedriver - Fatal编程技术网

Python 2.7 为什么在硒中使用add_试验性_选项?

Python 2.7 为什么在硒中使用add_试验性_选项?,python-2.7,selenium,selenium-chromedriver,Python 2.7,Selenium,Selenium Chromedriver,我试图理解一个与以下内容非常相似的代码片段: 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()和ad

我试图理解一个与以下内容非常相似的代码片段:

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\u option
的任务吗


谢谢

WebDriver实现接受浏览器配置信息的方式是通过一个称为“功能”的概念。启动会话(启动浏览器)时,用户指定希望启动的驱动程序支持哪些功能。这可能包括接受自签名SSL证书的能力、浏览器的配置文件设置或任何其他内容

然而,该模型的一个挑战是它被实现为一个字典,键值对由任意字符串的键和任意类型的对象的值组成。这里有两个潜在的问题。首先,功能名称很容易忘记或键入错误,并且可能不是所有浏览器都支持。此外,在代码实际执行之前不可能知道这一点。对于值,驱动程序通常希望与它支持的名称相关联的值属于特定类型,而且,这在驱动程序实现之间可能存在很大差异

输入选项类。这些构造为特定驱动程序可能期望的各种功能提供了设置器。它可以强制通过功能字典传递给驱动程序的名称是正确的,并且可以强制值的类型安全性。但是,大多数驱动程序实现(Chromium项目的chromedriver、Mozilla的geckodriver、Microsoft的用于边缘浏览器的MicrosoftWebDriver等)不是由Selenium项目构建或维护的。可能是驱动程序提供程序发布了一个新的驱动程序版本,该版本理解了Selenium项目没有时间在该驱动程序的options类中创建类型安全设置器的新功能


因此,在下一个版本的Selenium发布之前,用户不会被阻止使用新功能,选项类有一个“添加一个尚未有类型安全setter的附加选项”方法。在Python中,您的示例似乎是用Python编写的,该方法称为
add\u-option
。该方法通常是临时使用的,直到Selenium项目可以推出一个新版本,其中包括驱动程序实现者(在您的示例中是Chrome驱动程序)的任何新选项的类型安全设置器已添加。

WebDriver实现接受浏览器配置信息的方式是通过一个称为“功能”的概念。启动会话(启动浏览器)时,用户指定希望启动的驱动程序支持哪些功能。这可能包括接受自签名SSL证书的能力、浏览器的配置文件设置或任何其他内容

然而,该模型的一个挑战是它被实现为一个字典,键值对由任意字符串的键和任意类型的对象的值组成。这里有两个潜在的问题。首先,功能名称很容易忘记或键入错误,并且可能不是所有浏览器都支持。此外,在代码实际执行之前不可能知道这一点。对于值,驱动程序通常希望与它支持的名称相关联的值属于特定类型,而且,这在驱动程序实现之间可能存在很大差异

输入选项类。这些构造为特定驱动程序可能期望的各种功能提供了设置器。它可以强制通过功能字典传递给驱动程序的名称是正确的,并且可以强制值的类型安全性。但是,大多数驱动程序实现(Chromium项目的chromedriver、Mozilla的geckodriver、Microsoft的用于边缘浏览器的MicrosoftWebDriver等)不是由Selenium项目构建或维护的。可能是驱动程序提供程序发布了一个新的驱动程序版本,该版本理解了Selenium项目没有时间在该驱动程序的options类中创建类型安全设置器的新功能


因此,在下一个版本的Selenium发布之前,用户不会被阻止使用新功能,选项类有一个“添加一个尚未有类型安全setter的附加选项”方法。在Python中,您的示例似乎是用Python编写的,该方法称为
add\u-option
。该方法通常是临时使用的,直到Selenium项目可以推出一个新版本,其中包括驱动程序实现者(在您的示例中是Chrome驱动程序)添加的任何新选项的类型安全设置器。

Awesome!非常感谢。这非常有帮助。太棒了!非常感谢。这非常有帮助。