【问题标题】:Python-Selenium-Chrome minimized window is maximizing itselfPython-Selenium-Chrome 最小化窗口正在最大化自身
【发布时间】:2023-04-07 19:31:01
【问题描述】:

我在 Python 中使用 Selenium 和 chromedriver 来并行测试 2 个功能。基本上我的网页有 2 个下拉菜单。从任何下拉菜单中选择一个选项将下载一个文件。我有 2 个脚本分别测试两个下拉菜单。现在假设 script-1 打开 chrome 并加载网页。现在 script-1 打开下拉菜单 1,它正在根据给定的输入从中选择一个选项。在此期间,如果我从打开的网页导航到任何其他窗口,例如。文件资源管理器,下拉菜单将关闭而不选择选项和测试用例挂起。此外,如果我在打开下拉菜单之前最小化窗口,则在单击下载文件的选项时窗口将自行重新打开。如何阻止窗口重新打开。是否有任何 Chrome 设置?

即使我在执行期间离开计算机,我也想并行运行这两个脚本,因为它们都打开单独的窗口,但有时其中一个会挂起另一个窗口,我必须手动单击下拉菜单让它起死回生。我计划使用多线程运行脚本,其中 2 个线程引用每个脚本。

注意:我不能使用 urlretrieve,因为网页中的文件没有预定义的 URL。 PhantomJS 不支持文件下载。

我使用的是 Windows 10 机器。

【问题讨论】:

    标签: python windows selenium testing selenium-chromedriver


    【解决方案1】:

    有几种方法可以做到这一点

    1. 使用 selenium 网格和多进程运行并行测试,您可以在 docker 中轻松完成此操作,使用 docker/selenium,参考 https://github.com/SeleniumHQ/docker-selenium 中使用 docker
    2. 在 chrome 中禁用保存对话框

      options = webdriver.ChromeOptions()
      options.add_experimental_option("prefs", {
        "download.default_directory": r"yourpath",
        "download.prompt_for_download": False
      })
      DesiredCapabilities caps = DesiredCapabilities.chrome();
      
      driver = webdriver.Chrome(chrome_options=options)
      

    【讨论】:

    • 我已经禁用了保存对话框。我会调查 docker 并告诉你。
    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多