在幻像.js中确认警报窗口
confirm alert window in phantom.js
我有这个功能,可以找到按钮并单击它,但是在该警报出现后,我需要使用幻影进行确认.js
function() {
page.evaluate(function() {
$('.item-list clicked').first().find($('.comment-delete')).find('a').click();
})
}
也许我可以模拟调用警报而立即单击的功能? 或使用函数等待等待此警报?(不太可能,等待仅等待 DOM 对象,我认为是这样)
我也找不到另一个帮助我回答这个问题的 stackoverflow 答案,但基本上你可以注入一个 javascript 函数来确认警报弹出窗口:
这是我的python webdriver实现:
def example_js_confirmation( self ):
js_confirm = 'window.confirm = function(){return true;}' # .js function to confirm a popup
self.execute_javascript( js_confirm )
self.find_by_id( 'submit' ).click()
self.execute_javascript( 'return window.confirm' ) # trigger the injected js that returns true (virtually click OK)
它在某人的待办事项列表中 =) :硒所需功能 - 设置句柄PhantomJS驱动程序的警报
我所知,Phantom.JS是无头的。您唯一能做的就是通过以下方式获取警报的上下文
window.onAlert = function(alertText){
...
}
但我认为仅此而已。不能以编程方式关闭(常规)或呈现(在 Phantom.JS 中)警报。
一些来源:
* 使用 Phantom 渲染 JavaScript 警报.JS
* 以编程方式关闭警报
确认警报"是一个令人困惑的短语,因为Javascript同时提供了alert
(显示带有确定按钮的消息)和confirm
(显示确定和取消按钮),并且不清楚你的意思是哪一个。
至少 PhantomJS 2.x 的行为就像它在alert
框上单击"确定",在confirm
框上单击"取消"。
如果您想在confirm
框上单击"确定"而不是"取消",只要您不担心在加载过程中弹出confirm
框,就可以调用execute_javascript
覆盖window.confirm
以返回true
,这将在您的execute_javascript
有机会干预之前进行处理。 如果你也想抓住这些,我能想到的最好的办法就是修补PhantomJS源代码或通过上游代理注入JS。
我做到了:
// 1) override window.alert
page.evaluate(function(){
window.alert = function(msg){
window.callPhantom({alert: msg}); // will call page.onCallback()
return true; // will "close the alert"
};
});
// 2) re-bind to onAlert()
page.onCallback = function(obj) {
page.onAlert(obj.alert); // will trigger page.onAlert()
};
- 当我编码窗口时如何返回真或假.确认自己
- 窗口确认在 AJAX 帖子中打印 HTML 标签
- 取消按钮不适用于确认窗口
- 在chrome上显示类似于关闭窗口时的firefox的警报消息.确认消息”;离开"或“;留在这个页面上&quo
- 为什么这个JS确认窗口没有在表单提交时启动
- 在幻像.js中确认警报窗口
- 如何在表单中单击重置按钮时确认弹出窗口
- 使用模态弹出联系表单,是否可以在提交时在同一弹出窗口中显示确认
- 如何在确认弹出窗口中单击“离开页面”按钮
- 如何使用 window.open() 打开弹出窗口,确认消息为 Yex/No
- 角度指令控制器单元测试使用窗口.确认
- 窗口确认重定向,即使取消
- html表单中的变量未传递到Javascript窗口确认
- 在onbeforeunload事件的窗口确认时调用回调函数
- 窗口确认后取消选择下拉选项
- Javascript窗口确认弹出几次
- 自动应答窗口.确认使用VBA
- Chrome内联插件安装在窗口.确认
- 如何停止无所事事的窗口确认弹出框
- JQuery窗口确认未提交