先试再说 2024-04-26 09:33 采纳率: 0%
浏览 28

自动化测试关闭chrome打开应用弹窗

在自动化测试过程中chrome会弹出一个打开应用的弹窗,如下,

img

在浏览器前端模式,可以使用 autoit 中的 send {ENTER}, 点掉,当浏览器加了 headlesschrome ,在后台无界面执行时,这个窗口就无法点掉, 试过 添加 add_argument('disable-infobars');add_argument('--disable-legacy-window');add_argument("--disable-popup-blocking");add_argument("--disable-notifications") 这些参数,还是会弹出这个提示, 有什么办法禁止这个提示或者能点掉这个弹窗??

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-26 09:34
    关注

    引自免费微信小程序:皆我百晓生

    为了解决这个问题,我们可以尝试使用Selenium库配合AutoIt脚本来处理这个弹窗。首先确保你已经安装了selenium和autoit模块,如果没有,可以通过pip进行安装:

    pip install selenium
    pip install pyautogui
    

    接下来,我们将编写一个Python脚本,它将使用Selenium打开Chrome并运行一个AutoIt脚本来模拟点击"打开Grid++Report6 WEB报表应用程序"按钮。

    以下是完整的Python代码示例:

    import time
    from selenium import webdriver
    import autoit
    
    # 设置Chrome驱动路径
    CHROME_DRIVER_PATH = 'path/to/your/chromedriver'
    
    # 创建一个新的Chrome选项对象
    options = webdriver.ChromeOptions()
    options.add_argument('disable-infobars')
    options.add_argument('--disable-legacy-window')
    options.add_argument("--disable-popup-blocking")
    options.add_argument("--disable-notifications")
    
    # 添加额外的AutoIt脚本参数
    options.add_experimental_option("prefs", {
        "profile.default_content_setting_values.notifications": 2,
    })
    
    # 使用无头模式
    options.add_argument('--headless')
    
    # 初始化一个Chrome浏览器实例
    driver = webdriver.Chrome(executable_path=CHROME_DRIVER_PATH, options=options)
    
    # 访问目标URL
    driver.get('http://8080')  # 替换为实际的URL
    
    # 给页面一些加载时间
    time.sleep(5)
    
    # 定义AutoIt脚本
    autoit_script = """
    ; AutoIt脚本开始
    WinWaitActive("B 代石")
    ControlClick("B 代石", "", "[CLASS:Button; INSTANCE:2]") ; 点击"打开Grid++Report6 WEB报表应用程序"按钮
    WinClose("B 代石") ; 关闭弹窗
    Exit
    """
    
    # 执行AutoIt脚本
    autoit.run(autoit_script)
    
    # 继续执行你的测试步骤...
    # ...
    
    # 当测试完成后,关闭浏览器
    driver.quit()
    

    这段代码首先设置了Chrome选项,然后初始化了一个无头的Chrome浏览器。之后,我们给页面一些时间加载,然后通过AutoIt脚本模拟点击弹窗中的按钮,并关闭弹窗。

    注意:你需要根据实际情况替换CHROME_DRIVER_PATH和目标URL。此外,如果你的系统上没有安装AutoIt,你需要先下载并安装它:https://www.autoitscript.com/site/autoit/downloads/

    另外,由于这是一个针对特定情况的解决方案,可能需要根据实际情况进行调整。如果上述方法仍然无法解决问题,可能需要进一步分析弹窗的具体类型和结构,以便更精确地定位和操作它。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月26日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境