web-dev-qa-db-ja.com

Firefox Webdriverオプションでスイッチを除外する

Seleniumとpythonを使用して、Chrome webdriver:

options.add_experimental_option("excludeSwitches", ["enable-automation"])
driver = webdriver.Chrome(options = options)

しかし、Firefoxのwebdriverオプションに同様の属性が見つかりません。存在しますか?

9
lucas

Firefoxは異なるフラグを使用します。あなたの目的は正確にはわかりませんが、Seleniumを使用していることをWebサイトが検出しないようにしようとしていると思います。

WebサイトがSeleniumの使用を検出しないようにする方法はいくつかあります。

1)Seleniumを使用する場合、navigator.webdriverの値はデフォルトでtrueに設定されます。この変数は、ChromeおよびFirefoxに存在します。この変数は、検出されないように「未定義」に設定する必要があります。

2)プロキシサーバーを使用して、検出を回避することもできます。

3)一部のWebサイトでは、ブラウザーの状態を使用して、Seleniumを使用しているかどうかを判別できます。これを回避するために、カスタムブラウザプロファイルを使用するようにSeleniumを設定できます。

以下のコードは、これら3つのアプローチすべてを使用しています。

profile = webdriver.FirefoxProfile('C:\\Users\\You\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\something.default-release')

PROXY_Host = "12.12.12.123"
PROXY_PORT = "1234"
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", PROXY_Host)
profile.set_preference("network.proxy.http_port", int(PROXY_PORT))
profile.set_preference("dom.webdriver.enabled", False)
profile.set_preference('useAutomationExtension', False)
profile.update_preferences()
desired = DesiredCapabilities.FIREFOX

driver = webdriver.Firefox(firefox_profile=profile, desired_capabilities=desired)
1
CavanST

あなたが試すかもしれません:

from Selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from Selenium.webdriver import DesiredCapabilities
from Selenium.webdriver import Firefox


profile = FirefoxProfile()
profile.set_preference('devtools.jsonview.enabled', False)
profile.update_preferences()
desired = DesiredCapabilities.FIREFOX

driver = Firefox(firefox_profile=profile, desired_capabilities=desired)
1
olli_kahn