源码中log:参考往期
Python:封装logging模块和引用
封装浏览器驱动:
from common.logger import log
from selenium import webdriver
from selenium.webdriver.chrome.options import Options as ChromeOps
from selenium.webdriver.firefox.options import Options as FirefoxOps
def chrome():
log.info("启动Chrome浏览器")
return webdriver.Chrome()
def firefox():
log.info("启动Firefox浏览器")
return webdriver.Firefox()
def edge():
log.info("启动Edge浏览器")
return webdriver.Edge()
def chrome_headless():
chrome_options = ChromeOps()
chrome_options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错
chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面
chrome_options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度
chrome_options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
log.info("启动Chrome无界面浏览器")
return webdriver.Chrome(options=chrome_options)
def firefox_headless():
options = FirefoxOps()
options.add_argument('-headless')
log.info("启动Firefox无界面浏览器")
return webdriver.Firefox(options=options)
def get_browser(browser_type):
driver_dict = {"chrome": chrome, "firefox": firefox, "edge": edge,
"chrome_headless": chrome_headless,
"firefox_headless": firefox_headless, }
return driver_dict[browser_type]()
if __name__ == '__main__':
url = "http://www.baidu.com"
driver = get_browser("chrome_headless") # 使用浏览器
driver.get(url)
message = driver.find_element_by_id("su").get_property("value")
print("message:", message)
driver.quit()
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!