Driver 和 Webdriver (python selenium) 有什么区别?

问题描述 投票:0回答:1

关于 Python 中的 Selenium...

from seleniumbase import Driver
(seleniumbase) 和
from selenium import webdriver
(selenium, seleniumwire) 有什么区别? “用例”有什么区别?

我只看到构造函数的差异:seleniumbase 驱动程序更难设置选项,然后对对象的操作是相同的。

from seleniumbase import Driver
driver = Driver(uc=False, headless=True, proxy=proxy, incognito=None, user_data_dir=None, extension_dir=None, binary_location=None)
from selenium import webdriver as Driver
driver = Driver.Chrome(options=options)
python selenium-webdriver webdriver driver seleniumbase
1个回答
0
投票

听起来你正在尝试比较这个:

from seleniumbase import Driver
driver = Driver()

与:

from selenium import webdriver
driver = webdriver.Chrome()

seleniumbase

driver
比常规的 Selenium 有更多的方法。 seleniumbase 驱动程序方法还具有自动选择器检测、智能等待、特殊断言方法、允许截断 URL 并支持
TAG:contains("TEXT")
选择器。这意味着你可以这样做:

from seleniumbase import Driver

driver = Driver()
driver.open("seleniumbase.io/simple/login")
driver.type("#username", "demo_user")
driver.type("#password", "secret_pass")
driver.click('a:contains("Sign in")')
driver.assert_exact_text("Welcome!", "h1")
driver.assert_element("img#image1")
driver.highlight("#image1")
driver.click_link("Sign out")
driver.assert_text("signed out", "#top_message")
driver.quit()

还有一些其他差异,例如传递选项的方式。 SeleniumBase 选项作为参数传递到

Driver()
Manager 格式的
Driver()
定义中(还有许多其他格式,例如
SB()
BaseCase
等)

SeleniumBase 还有一个 UC 模式选项,它具有特殊方法让您的机器人绕过阻止常规 Selenium 机器人的验证码:

from seleniumbase import Driver

driver = Driver(uc=True)
driver.uc_open_with_reconnect("https://top.gg/", 6)
driver.quit()

这是一个需要点击的验证码绕过示例:

from seleniumbase import Driver

driver = Driver(uc=True)
driver.uc_open_with_reconnect("https://seleniumbase.io/apps/turnstile", 3)
driver.uc_switch_to_frame("iframe")
driver.uc_click("span.mark")
driver.sleep(3)
driver.quit()
© www.soinside.com 2019 - 2024. All rights reserved.