【问题标题】:How to handle windows in Selenium Webdriver如何在 Selenium Webdriver 中处理窗口
【发布时间】:2015-05-18 08:15:18
【问题描述】:

我遇到过以下情况 https://ipay.adp.com/iPay/login.jsf 单击页面中的登录按钮,我收到了无法处理的弹出窗口。 任何人都可以帮助我解决这种情况..

【问题讨论】:

    标签: selenium-webdriver popup alert popupwindow window-handles


    【解决方案1】:

    您可以使用autoit 自动弹出弹出窗口。

    见:

    然后你可以使用java调用exe文件

        //click on the login button
        Process process= Runtime.getRuntime().exec("C:\\Documents and Settings\\new.exe"); // Give  path where the exe is saved.
        process.waitFor();
        process.destroy();
    

    【讨论】:

      【解决方案2】:

      请执行以下步骤:
      1.下载AutoIT工具。可以从http://www.autoitscript.com/site/autoit/downloads/下载

      注意:请下载 AutoIT 完整安装

      1. 在安装 AutoIT 时,您将获得两个选项:运行脚本和编辑脚本。如果您要在不进行任何修改的情况下使用脚本,请选择 Run the Script 选项。如果要自定义脚本,请选择 Edit the Script 选项(推荐,因为我们总是需要根据需要自定义脚本。有时我们需要创建自己的脚本。)
      2. 打开安装auto的地方
      3. 打开“Extras 文件夹”,然后打开“Au3Record” 对于 X-86,使用此路径 C:\Program Files (x86)\AutoIt3\Extras\Au3Record
      4. 打开 Recorder 等待它启动
      5. 在浏览器中执行步骤以显示该窗口
      6. 现在点击记录器上的记录按钮
      7. 通过键盘执行您要执行的键序列,不要使用鼠标只使用键盘
      8. 现在点击停止
      9. 保存脚本并将其保存在某个位置
      10. 右键单击脚本并选择编译(X86)
      11. 您会注意到现在创建的 .exe 文件通过以下代码在您的 java 代码中使用此 .exe

        Process process=Runtime.getRuntime().exec("exe的绝对路径"); 进程.waitFor(); 进程.destroy(); 或执行以下步骤打开记事本并粘贴下面提到的代码

        region --- Au3Recorder 生成代码 Start (v3.3.9.5 KeyboardLayout=00000409) ---

        region --- 内部函数 Au3Recorder Start ---

        函数 _Au3RecordSetup() Opt('WinWaitDelay',100) Opt('WinDetectHiddenText',1) Opt('MouseCoordMode',0) 本地 $aResult = DllCall('User32.dll', 'int', 'GetKeyboardLayoutNameW', 'wstr', '') 如果 $aResult[1] '00000409' 那么 MsgBox(64, 'Warning', '录音已经在不同的键盘布局下完成' & @CRLF & '(00000409->' & $aResult[1] & ')') 结束如果

        结束函数

        _AU3RecordSetup()

        endregion --- 内部函数 Au3Recorder End ---

        发送("testUsername{TAB}Testpasword{ENTER}")

        endregion --- Au3Recorder 生成代码 End ---

      将文件另存为“authenticationAD.au3”现在创建此文件的 exe,就像上面在步骤 11-12 中提到的相同步骤,请使用正确的更改 testUsername 和密码,但不要删除和 {Tab} {and Enter}

      如果您仍然面临这个问题,请告诉我,我会通过电子邮件向您发送带有 auto it 脚本的 java 文件

      【讨论】: