首页 > 解决方案 > Selenium 在 chrome 中启用弹出窗口

问题描述

我正在使用 selenium 导航的网站将打开一个弹出窗口,这就是我将此选项添加到 chrome 的原因。

var chromeOptions  = new chrome.Options();
chromeOptions.addArguments("test-type");
chromeOptions.addArguments("start-maximized");
chromeOptions.addArguments("--disable-extensions");
chromeOptions.addArguments("--js-flags=--expose-gc");
chromeOptions.addArguments("--enable-precise-memory-info");
chromeOptions.addArguments("--disable-popup-blocking");
chromeOptions.addArguments("--disable-default-apps");
chromeOptions.addArguments("--disable-infobars");
chromeOptions.setUserPreferences({'profile.default_content_settings.images':'2'});
chromeOptions.setUserPreferences({'profile.default_content_settings.popups':'2'});

单击后,会打开一个新窗口,此窗口包含我需要处理的弹出窗口,因此我切换到此窗口并注意到弹出窗口未处理。

这是这个新窗口上的 driver.getPageSource() 返回的内容:

<html dir="ltr" lang="en">
<head>
    <script type="text/javascript">
        var _AdfWindowOpenError='A popup window blocker has been detected in your browser. Popup blockers interfere with the operation of this application. Please disable your popup blocker or allow popups from this site.';</script>
    <script type="text/javascript" src="/fscmUI/adf/jsLibs/Locale2lzbpv.js"></script>
    <script type="text/javascript" src="/fscmUI/adf/jsLibs/Common2lzbpv.js"></script>
    <script type="text/javascript">
        document.onkeydown=_noReload;
        var _blockReload=1;
        function _fixDialogTitle(){ 
            window.document.title=window.document.getElementById('_adfvdlg').contentWindow.document.title};</script>
    <title></title>
</head>
<frameset title="Content" rows="100%,*" 
    onload="_fixDialogTitle();
        _sizeWin(window.document.getElementById('_adfvdlg').contentWindow,0,30,{W:700,H:400})" 
    onunload="try {
        var pw = top.opener; 
        if (!pw) return; 
        var p = (pw['AdfPage'] ? pw.AdfPage.PAGE : null); 
        var ds = (pw['AdfDhtmlRichDialogService'] ? pw.AdfDhtmlRichDialogService.getInstance() : null);
        if (ds &amp;&amp; p) p.scheduleTimer(ds, ds.checkForWindowCanceled, '1577377052947', 1, {'isSynchronized':true});
    }
    catch (e){};">
    <frame id="_adfvdlg" name="_adfvdlg" title="Content" frameborder="0" noresize="" src="/fscmUI/faces/adf.dialog-request?_adf.ctrlstate=73950a4hf_129&amp;_afrLoop=4736492517208121&amp;_rtrnId=1577377052947" longdesc="#">
    <noframes>Your browser does not support frames. Frames support is required for this functionality</noframes>
</frameset>
</html>

标签: node.jsseleniumautomation

解决方案


推荐阅读