在firefox webdriver选项中排除开关

时间:2019-07-20 05:47:58

标签: python selenium selenium-firefoxdriver

使用Selenium和python,我可以通过Chrome网络驱动程序来做到这一点:

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

但是我找不到Firefox的webdriver选项的类似属性。是否存在?

2 个答案:

答案 0 :(得分:4)

Firefox使用不同的标志。我不确定您的目标确切是什么,但我假设您正试图避免某些网站检测到您正在使用硒。

有多种方法可以避免网站检测到硒的使用。

1)使用Selenium时,默认将navigator.webdriver的值设置为true。此变量将出现在Chrome和Firefox中。此变量应设置为“ undefined”,以避免被检测。

2)代理服务器也可以用来避免检测。

3)某些网站能够使用浏览器的状态来确定您是否正在使用Selenium。您可以将Selenium设置为使用自定义浏览器配置文件来避免这种情况。

下面的代码使用了这三种方法。

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 :(得分:1)

您可以尝试:

pip3 install virtualenvwrapper