实操问题四:Robot Framework selenium 中没有写close browser,但是浏览器窗口会自动关闭 解决方案
Robot Framework 中没有写close browser,但是浏览器窗口会自动关闭 解决方案
一、问题现象:
每次在RIDE中运行完测试用例,浏览器的窗口都会自动关闭
解决办法:通过Selenium的一个类ChromeOptions来设置浏览器的行为
二、解决方案
在open browser 后加options参数
options=add_argument("--disable-blink-features=AutomationControlled");add_experimental_option("detach", True);add_experimental_option('excludeSwitches', ['enable-automation'])

add_experimental_option("detach", True) #不自动关闭浏览器
add_experimental_option('excludeSwitches', ['enable-automation']) #关闭chrome正受到自动测试软件的控制
---> 没有设置之前的效果:

---> 设置之后的效果:

三、相关原理
ChromeOptions 是 Selenium 提供的一个类,用于配置和自定义 Chrome 浏览器的行为。通过 ChromeOptions,可以设置和修改 Chrome 浏览器的各种选项和参数,以满足测试需求或自动化需求。
ChromeOptions 提供了一系列方法来添加和配置选项,例如:
add_argument(argument):添加命令行参数到 ChromeOptions。可以使用这个方法来模拟用户在启动 Chrome 浏览器时输入的命令行参数。
add_experimental_option(name, value):添加实验性选项到 ChromeOptions。这些选项通常用于启用或禁用 Chrome 浏览器的一些实验性功能。
add_extension(extension_path):添加 Chrome 浏览器扩展插件。你可以使用这个方法加载并使用指定的扩展插件。
add_argument("user-data-dir=profile_path"):指定用户配置文件目录,可以用于加载用户的配置和个人数据。
from selenium import webdriver from selenium.webdriver.chrome.options import Options url = 'https://www.baidu.com' # Options类实例 chrome_options = Options() # add_argument(argument)---设置浏览器参数 启动时设置默认语言为中文 UTF-8 chrome_options.add_argument('lang=zh_CN.utf-8')
# add_experimental_option(name, value)---添加实验性选项到ChromeOptions 关闭chrome正受到自动测试软件的控制
chrome_options.add_experimental_option('useAutomationExtension',False)
chrome_options.add_experimental_option('excludeSwitches',['enable-automation'])
# add_extension(extension_path)---添加扩展应用
extension_path = '/extension/path'
chrome_options.add_extension(extension_path)
# 启动浏览器并设置chrome_options参数
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get(url)
from selenium import webdriver
#参数 options 可以是多个,可以使用多个 add_experimental_option 方法来添加多个实验性选项,每个 add_experimental_option 方法都会添加一个选项到 ChromeOptions 对象中
options = webdriver.ChromeOptions() options.add_experimental_option("option_name1", "option_value1") options.add_experimental_option("option_name2", "option_value2") driver = webdriver.Chrome(options=options)

浙公网安备 33010602011771号