我正在尝试为自动化目的编写一类网络驱动程序。
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->定义驱动程序)
答案 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,
}