【问题标题】:Automating javascript confirmation box自动化javascript确认框
【发布时间】:2015-08-05 00:03:47
【问题描述】:

众所周知,当弹出一个 javascript 确认警报/框时,浏览器会专注于该框,而其他所有内容都处于禁用状态,直到选择了两个选项之一,当单击“确定”时返回 true,当单击“取消”时点击它返回false。

现在在编写涉及确认警报的脚本时,我的语句是基于这些布尔值的返回,现在我想知道(我不知道这是否是一个愚蠢的问题),这是一种仅在 javascript 中强制或自动返回 true 或 false?

例如,我编写了一个脚本来检测确认警报,然后在我的脚本中强制它返回 true 或 false。

注意:我只是 javascript 的初学者,所以我不知道这是否是一个好问题,但我希望得到答案。

【问题讨论】:

  • 为什么要打开确认框然后自己点击呢?
  • 不。您将改用 HTML+JavaScript 对话框,例如jqueryui.com/dialog/#modal-message
  • 这是为了功能自动化测试吗?如果是这样,请使用 selenium-webdriverjs 或其他库。
  • @Liam 这是我每天都在做的事情,所以我想尝试自动化它,比如自动化登录。

标签: javascript


【解决方案1】:

不是来自页面内。

JavaScript 是单线程的,confirmalert 是阻塞的。等待输入时不会运行任何 JS。

例如,如果您为此编写测试,那么您可以尝试模拟整个 confirmalert 函数。

window.confirmValue = true;
window.confirm = function () { return window.confirmValue; }

if (confirm("Hello, world")) {
  console.log("True");
}

如果您是从页面外部编写 JS(例如驱动 PhantomJS),那么方法可能会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多