如何使用Selenium和Python在Firefox中禁用自动完成功能?

时间:2016-07-08 19:02:51

标签: python selenium web-scraping

我正在使用Selenium构建自动化测试任务。当我将第一个字段放在表单上时,其余部分将根据之前的尝试自动完成。我可以清除字段来处理这个问题,但如果我可以完全禁用自动完成功能会更容易 有没有办法在Python Selenium中做到这一点?

编辑:我正在创建一个配置文件:

profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
profile.set_preference("security.enable_java", True)
profile.set_preference("plugin.state.java", 2) 
driver = webdriver.Firefox(firefox_profile=profile)

2 个答案:

答案 0 :(得分:2)

最好的选择是为Firefox创建一个与selenium webdriver配合使用的配置文件:

使用'-p'选项启动Firefox以启动概要文件管理器并创建新的自定义概要文件。

在选项中,您可以停用自动填充功能:

转到'选项'> 'privacy'> '使用历史记录的自定义设置'并禁用'记住搜索和表单历史记录。

使用以下命令将自定义Firefox配置文件与selenium一起使用:

from selenium import webdriver
from selenium.webdriver.firefox.webdriver import FirefoxProfile
profile = FirefoxProfile(path_to_my_profile)
driver = webdriver.Firefox(profile)

或者您可以使用selenium本身创建临时自定义配置文件(省略'path_to_my_profile')并添加以下首选项:

profile.set_preference('browser.formfill.enable', False)

答案 1 :(得分:1)

您需要将browser.formfill.enable firefox配置文件首选项设置为false,以要求Firefox不要记住并自动填充表单输入值:

profile.set_preference("browser.formfill.enable", "false")