Chrome类Python示例

au9on6nz  于 2023-06-19  发布在  Go
关注(0)|答案(2)|浏览(121)

当我们创建一个Chrome类的对象时,使用以下代码:

#Creating an instance of Chrome class of webdriver module
Chrome_class_object = webdriver.Chrome()

#Printing an Output
print(type(Chrome_class_object))

输出:

<class 'selenium.webdriver.chrome.webdriver.WebDriver'>

我们在输出中看到,该对象属于selenium.webdriver.chrome.webdriver.WebDriver类,但不是Chrome类,但我们通过webdriver的Chrome类创建了它,因此它应该属于Chrome类。为什么会这样呢?
在selenium库中创建webdriver模块的Chrome类示例

flvlnr44

flvlnr441#

WebDriver类是一个泛型类,用作不同浏览器特定实现的基础,例如ChromeFirefoxEdge等。每个特定于浏览器的实现都扩展了WebDriver类,并提供了自己独特的功能和方法。
对于webdriver.Chrome()Chrome类是WebDriver的子类,专门为控制Chrome浏览器而定制。它继承了WebDriver类的所有方法和属性,并添加了特定于Chrome的附加功能。
因此,当您打印Chrome对象的类型时,它会显示selenium.webdriver.chrome.webdriver.WebDriver,表明该对象属于Chrome的WebDriver类。
即使您使用Chrome类创建了示例,对象的类型也反映了底层实现类,即ChromeWebDriver类。

l0oc07j2

l0oc07j22#

WebDriver是接口,其中作为ChromeDriver实现 WebDriver 类。将 WebDriver 视为一个包含方法 backbone 但没有任何主体的合约。ChromeDriver/GeckoDriver可以根据其标准实现这些方法。
所以你不能创建一个 interface 的对象,而必须从实现 WebDriver 接口的子类创建它。因此,当您:

Chrome_class_object = webdriver.Chrome()
print(type(Chrome_class_object))

输出为:

<class 'selenium.webdriver.chrome.webdriver.WebDriver'>

相关问题