Python-Selenium-Chrome最小化窗口最大化自己

时间:2017-04-27 01:42:31

标签: python windows selenium testing selenium-chromedriver

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

即使我在执行期间离开计算机,我也希望并行运行这两个脚本,因为它们都打开了单独的窗口但是有一段时间其中一个挂起另一个窗口,我必须手动点击下拉列表让它恢复生机。我打算使用多线程运行脚本,每个脚本都有2个线程。

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

我使用的是Windows 10机器。

1 个答案:

答案 0 :(得分:0)

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

  1. 使用selenium grid和multiprocess运行并行测试,您可以在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)