CHROME类下 options函数根本没调用呀

来源:3-4 继承基类实现浏览器个性化

qq_Qian儭_03543846

2021-11-11

老师,实例中我看了下,CHROME类下 options函数根本没调用呀

encoding: utf-8

“”"
@author: xiesongsong
@file: demo01.py
@time: 2021/11/10 22:59
"""
from typing import Type, Union

from selenium.webdriver import *

class BrowserTypeError(Exception):
def init(self, _type):
self._type = _type

def __str__(self):
	return f"unsupported type: {self._type}"

class BROWSER:
WINDOWS_SIZE = (1024, 768)
IMP_TIME = 30
PAGE_LOAD_TIME = 20
SCRIPT_TIME_OUT = 20
HEADLESS = True

CHROME_DRIVER_PATH = '../drivers/chrome_driver_v95.exe'

def __init__(self,
			 browser_type: Type[Union[Firefox, Chrome, Ie, Edge]] = Chrome,
			 option_type: Type[Union[FirefoxOptions, ChromeOptions, IeOptions]] = ChromeOptions,
			 driver_path: str = CHROME_DRIVER_PATH):
	if not issubclass(browser_type, (Firefox, Chrome, Ie, Edge)):
		raise BrowserTypeError(browser_type)
	if not issubclass(option_type, (FirefoxOptions, ChromeOptions, IeOptions)):
		raise BrowserTypeError(option_type)

	if not isinstance(driver_path, str):
		raise

	self._path = driver_path
	self._browser = browser_type
	self._option = option_type

@property
def options(self):
	"""
	浏览器定制操作,在子类中实现
	:return:
	"""
	return

@property
def browser(self):
	"""
	启动浏览器,返回浏览器实例
	:return:
	"""
	return

class CHROME(BROWSER):
IMP_TIME = 30
PAGE_LOAD_TIME = 20
SCRIPT_TIME_OUT = 20
HEADLESS = False
WINDOWS_SIZE = (1920, 900)

START_MAX = '--start-maximized'

EXP = {
	'excludeSwitches': ['enable-automation'],
	'mobilEmulation': {'deviceName': 'iPhone 6'}
}

def options(self):
	print("options.........")
	chrome_option = self._option
	chrome_option.add_argument(self.START_MAX)
	for k, v in self.EXP.items():
		chrome_option.add_experimental_option(k, v)
	chrome_option.headless = self.HEADLESS
	print(chrome_option)
	return chrome_option

@property
def browser(self):
	chrome = self._browser(self._path, options=self._option())
	chrome.implicitly_wait(self.IMP_TIME)
	chrome.set_script_timeout(self.SCRIPT_TIME_OUT)
	chrome.set_page_load_timeout(self.PAGE_LOAD_TIME)
	# chrome.set_window_size(*self.WINDOWS_SIZE)
	return chrome

with CHROME().browser as _chrome:
_chrome.get(“http://www.baidu.com”)
from time import sleep

sleep(100)
写回答

1回答

托尼老师

2021-11-16

这一句有问题:

chrome = self._browser(self._path, options=self._option())

options参数的值传错了,应该传入CHROME类的属性方法self.options

0
0

Python自动化测试开发实战,能帮你就业的测试课

开发高扩展、高可用的自动化测试框架,利用好测试自动化技术。

445 学习 · 157 问题

查看课程