2017-04-27 245 views
0

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

即使我在执行过程中远离计算机,我想同时并行运行这两个脚本,因为它们都打开单独的窗口,但在某个时间之后,其中一个挂起了另一个窗口,我必须手动单击下拉菜单让它恢复生机。我打算使用多线程运行脚本,并使用2个线程来引用每个脚本。

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

我正在使用Windows 10机器。

回答

0

有几种方法使用硒网格和多进程要做到这一点

  1. 运行并行测试,你可以在搬运工做到这一点很容易,使用泊坞窗/硒,参考使用码头工人在https://github.com/SeleniumHQ/docker-selenium
  2. 禁用保存对话框中铬

    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) 
    
+0

我已经禁用了保存对话框。我会看着码头工人,让你知道。 – pratibha