node.js - 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 && 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&_afrLoop=4736492517208121&_rtrnId=1577377052947" longdesc="#">
<noframes>Your browser does not support frames. Frames support is required for this functionality</noframes>
</frameset>
</html>
解决方案
推荐阅读
- linux-kernel - 我们可以将分支预测与原子操作一起使用吗?
- javascript - Angular:自定义键盘动作
- angular - z_.subject 不是构造函数 - Angular 11 (Prod)
- python - Youtube API V3 playlistItems批量添加错误
- angular - 有没有办法以编程方式查找默认值的数量或跳过 Angular 中 formGroup 的所有默认值?
- javascript - 类型错误:无法读取 empty_value_check 未定义的属性长度
- scripting - 我需要帮助创建一个 shell 脚本来告诉我一个进程是否已启动并正在运行,以便我可以在 PRTG 中监视该进程
- sql - SQL触发器 - 如何从一个表的插入数据中获取自动递增值,插入另一个表?
- python - 有没有办法创建一个命令来查找在 JSON 文件中输入的参数,并将所有结果发送到 Discord Embed 中?
- qlikview - 在同一字段 Qlikview 中显示日期之间的天数