实操问题四: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)

  

 

 

 

 

 

  

posted @ 2023-08-05 13:07  羊羊的测试之路  阅读(1305)  评论(0)    收藏  举报