gpt4 book ai didi

c# - 隐藏浏览器弹出窗口 - Watin

转载 作者:太空狗 更新时间:2023-10-29 23:49:48 26 4
gpt4 key购买 nike

我在 Windows 窗体应用程序中使用 Watin 库。为了隐藏浏览器,我使用了这条指令:

Settings.Instance.MakeNewIeInstanceVisible = false;

但是,它不会隐藏弹出窗口(当模拟点击打开弹出窗口的元素时)。有办法隐藏它们吗?

最佳答案

您可以通过运行一些 javascript 代码并生成 window.open 以编程方式完成此操作什么都不做的函数!

示例

Here是我制作的一个测试页,它有一个非常简单的表单,当用户单击Sum 按钮时,它会汇总 numA。 + numB并将结果显示在 <span id="result"></span> 中元素。结果文本更新后,它通过调用 window.open 打开一个弹出窗口.为了让这个弹窗消失,我们需要去掉window.open功能:

window['open'] = function() { return false; }

要使用 Watin 做到这一点,我们必须使用 Eval函数并像这样注入(inject) javascript 代码:

browser.Eval("window['open'] = function() { return false; }");

然后所有弹出窗口仅针对该页面加载消失,我们得到了想要的结果。

示例 C# 代码

private void buttonPopupdEnabled_Click(object sender, EventArgs e)
{

WatiN.Core.Settings.Instance.MakeNewIeInstanceVisible = false;
IE ie = new IE();

ie.GoTo("http://zikro.gr/dbg/html/watin-disable-popups/");
ie.Eval("window['open'] = function() { return false; }");
ie.TextField(Find.ById("numA")).TypeText("15");
ie.TextField(Find.ById("numB")).TypeText("21");
ie.Button(Find.ById("sum")).Click();
string result = ie.Span(Find.ById("result")).Text;
ie.Close();

labelResult.Text = String.Format("The result is {0}", result);
}

在 javascript 注入(inject)之前运行的程序(弹出窗口出现)

Popup without javascript injection

javascript注入(inject)后运行的程序(Popup消失)

enter image description here

关于c# - 隐藏浏览器弹出窗口 - Watin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com