Webdriver对象没有属性'prefs'

时间:2019-09-24 15:39:05

标签: python-3.x selenium-chromedriver

我正在尝试为自动化目的编写一类网络驱动程序。

class WebDriver(object):
    def __init__(self, browser, *args):
        if browser=='Firefox': self.id= 1
        else: self.id= 2
        try:
            self.set_prefs()
            print("prefrences are set:", self.set_prefs)
        except Exception as e:
            print("ERROR: ",e)

        try:
            self.set_options()
            print("Options are set:", self.options)
        except Exception as e:
            print("ERROR: ",e)

    def start_driver(self):
        if self.id==1:
            self.driver= webdriver.Firefox()
        else:
            self.driver= webdriver.Chrome(chrome_options= self.options)

    def set_options(self):
        if self.id==1:
            self.options= webdriver.FirefoxOptions()
        else:
            self.options= webdriver.ChromeOptions()
            self.options.add_argument("--start-maximized")
            self.options.add_argument('--ignore-certificate-errors')
            self.options.add_experimental_option("prefs", self.prefs)

    def set_prefs(self):
        if self.id==1:
            self.set_prefs= None
        else:
            self.set_prefs={
                "profile.default_content_settings.popups": 0,
                "download.default_directory": os.getcwd()+"\\Software_Output\\", 
                "directory_upgrade": True,
            }   

    def close_driver(self):
        self.driver.close()

但是我得到以下错误: 'WebDriver'对象没有属性'prefs' 用于代码行

self.options.add_experimental_option("prefs", self.prefs)

我想念什么吗? 另外,此模型是否正确(设置pref-> options->定义驱动程序)

1 个答案:

答案 0 :(得分:0)

self.prefs在任何地方都没有定义。

您在这里有此代码:

def set_prefs(self):
        if self.id==1:
            self.set_prefs= None
        else:
            self.set_prefs={
                "profile.default_content_settings.popups": 0,
                "download.default_directory": os.getcwd()+"\\Software_Output\\", 
                "directory_upgrade": True,
            }

我认为您的意思是:

def set_prefs(self):
        if self.id==1:
            self.prefs= None
        else:
            self.prefs={
                "profile.default_content_settings.popups": 0,
                "download.default_directory": os.getcwd()+"\\Software_Output\\", 
                "directory_upgrade": True,
            }