|
@@ -36,12 +36,12 @@ class WebDriver(RemoteWebDriver):
|
|
|
proxy=None,
|
|
|
driver_type=CHROME,
|
|
|
timeout=10,
|
|
|
+ headless=False,
|
|
|
+ usages_local_driver=False,
|
|
|
window_size=(1024, 800),
|
|
|
server_addr=None,
|
|
|
- custom_argument=None,
|
|
|
version=None,
|
|
|
- usages_local_driver=False,
|
|
|
- headless=False,
|
|
|
+ custom_argument=None,
|
|
|
executable_path=None,
|
|
|
service_log_path=None,
|
|
|
**kwargs
|
|
@@ -58,7 +58,7 @@ class WebDriver(RemoteWebDriver):
|
|
|
window_size: # 窗口大小
|
|
|
executable_path: 浏览器路径,默认为默认路径
|
|
|
server_addr: 远程服务地址
|
|
|
- usages_local_driver: 使用本地驱动
|
|
|
+ usages_local_driver: 是否使用本地驱动
|
|
|
service_log_path: selenium service 日志路径
|
|
|
version: 浏览器版本
|
|
|
**kwargs:
|
|
@@ -67,13 +67,13 @@ class WebDriver(RemoteWebDriver):
|
|
|
self._user_agent = user_agent or DEFAULT_USERAGENT
|
|
|
self._proxy = proxy
|
|
|
self._headless = headless
|
|
|
+ self._usages_local_driver = usages_local_driver
|
|
|
self._timeout = timeout
|
|
|
self._window_size = window_size
|
|
|
- self._server_addr = server_addr or WEBDRIVER["server_addr"]
|
|
|
+ self._executable_path = executable_path
|
|
|
self._custom_argument = custom_argument
|
|
|
+ self._server_addr = server_addr or WEBDRIVER["server_addr"]
|
|
|
self._version = version or WEBDRIVER["version"]
|
|
|
- self._executable_path = executable_path
|
|
|
- self._usages_local_driver = usages_local_driver
|
|
|
self._service_log_path = service_log_path or WEBDRIVER["service_log_path"]
|
|
|
|
|
|
if driver_type == WebDriver.CHROME:
|
|
@@ -84,7 +84,7 @@ class WebDriver(RemoteWebDriver):
|
|
|
|
|
|
else:
|
|
|
raise TypeError(
|
|
|
- "dirver_type must be one of CHROME or PHANTOMJS or FIREFOX, but received {}".format(
|
|
|
+ "dirver_type must be one of CHROME or FIREFOX, but received {}".format(
|
|
|
type(driver_type)
|
|
|
)
|
|
|
)
|
|
@@ -223,8 +223,7 @@ class WebDriver(RemoteWebDriver):
|
|
|
# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
|
|
|
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
|
|
chrome_options.add_experimental_option("useAutomationExtension", False)
|
|
|
- chrome_options.add_argument("--disable-blink-features=AutomationControlled")
|
|
|
-
|
|
|
+ chrome_options.add_argument('--disable-blink-features=AutomationControlled')
|
|
|
# docker 里运行需要
|
|
|
chrome_options.add_argument("--no-sandbox")
|
|
|
chrome_options.add_argument("--disable-gpu")
|
|
@@ -278,7 +277,6 @@ class WebDriver(RemoteWebDriver):
|
|
|
'params': {'source': js}
|
|
|
}
|
|
|
res = browser.execute("executeCdpCommand", params)['value']
|
|
|
-
|
|
|
return browser
|
|
|
|
|
|
def local_chrome_driver(self):
|
|
@@ -286,7 +284,7 @@ class WebDriver(RemoteWebDriver):
|
|
|
# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
|
|
|
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
|
|
chrome_options.add_experimental_option("useAutomationExtension", False)
|
|
|
- chrome_options.add_argument("--disable-blink-features=AutomationControlled")
|
|
|
+ chrome_options.add_argument('--disable-blink-features=AutomationControlled')
|
|
|
|
|
|
# docker 里运行需要
|
|
|
chrome_options.add_argument("--no-sandbox")
|
|
@@ -379,6 +377,9 @@ class WebDriver(RemoteWebDriver):
|
|
|
else:
|
|
|
raise AttributeError
|
|
|
|
|
|
+ def quit(self):
|
|
|
+ self.get_driver().quit()
|
|
|
+
|
|
|
# def __del__(self):
|
|
|
# if self.driver:
|
|
|
# self.driver.quit()
|