Selaa lähdekoodia

fixbug:修复远程selenium服务headless模式无法使用的问题

dongzhaorui 2 vuotta sitten
vanhempi
commit
f93f3d4bef
1 muutettua tiedostoa jossa 8 lisäystä ja 3 poistoa
  1. 8 3
      FworkSpider/feapder/utils/webdriver.py

+ 8 - 3
FworkSpider/feapder/utils/webdriver.py

@@ -173,7 +173,6 @@ class WebDriver(RemoteWebDriver):
     def remote_firefox_driver(self):
         firefox_options = webdriver.FirefoxOptions()
         desired_capabilities = firefox_options.to_capabilities()
-        firefox_options.add_argument("--disable-gpu")
         firefox_options.set_preference("dom.webdriver.enabled", False)
 
         if self._version:
@@ -197,6 +196,10 @@ class WebDriver(RemoteWebDriver):
         if not self._load_images:
             firefox_options.set_preference("permissions.default.image", 2)
 
+        if self._headless:
+            firefox_options.add_argument("--headless")
+            firefox_options.add_argument("--disable-gpu")
+
         if self._custom_argument:
             for arg in self._custom_argument:
                 firefox_options.add_argument(arg)
@@ -227,7 +230,6 @@ class WebDriver(RemoteWebDriver):
         chrome_options.add_argument('--disable-blink-features=AutomationControlled')
         # docker 里运行需要
         chrome_options.add_argument('--no-sandbox')
-        chrome_options.add_argument('--disable-gpu')
         chrome_options.add_argument('--disable-extensions')
         chrome_options.add_argument('--disable-dev-shm-usage')
 
@@ -255,6 +257,10 @@ class WebDriver(RemoteWebDriver):
                 "prefs", {"profile.managed_default_content_settings.images": 2}
             )
 
+        if self._headless:
+            chrome_options.add_argument("--headless")
+            chrome_options.add_argument("--disable-gpu")
+
         if self._window_size:
             chrome_options.add_argument(
                 "--window-size={},{}".format(self._window_size[0], self._window_size[1])
@@ -291,7 +297,6 @@ class WebDriver(RemoteWebDriver):
         chrome_options.add_argument('--disable-blink-features=AutomationControlled')
         # docker 里运行需要
         chrome_options.add_argument("--no-sandbox")
-        chrome_options.add_argument("--disable-gpu")
         chrome_options.add_argument('--disable-extensions')
         chrome_options.add_argument('--disable-dev-shm-usage')