C#WebBrowser控制window.name

时间:2016-06-22 17:42:25

标签: javascript c# wpf webbrowser-control browser-automation

我正在尝试使用WebBrowser控件在WPF应用程序中自动化网站。

网站检查每个页面中的javascript window.name,如果这与预设值不匹配则会抛出错误。

请看下面的示例。

var id="1234";
if (window.name != id)
{
  window.open("home.html", id)
}

有没有办法获取此值并在创建新的WebBrowser对象时设置它?

1 个答案:

答案 0 :(得分:0)

我尝试了以下操作,我的问题得到了解决。希望这可能有助于某人。

我首先使用此代码将页面导航到空白页面。

var html = string.Format(
            "<html><body><h4>Opening ...</h4><script type='text/javascript'>window.open('about:blank', '{0}');</script></body></html>",
            popupWindowName);

        var w = new Browser();
        w.NavigateToString(html);

然后在页面中加载完成事件,我导航到原始URL。

w.Navigate("https://somesite.com/page.aspx",
                null, null, h);

弹出窗口名称已更改为我想要的内容并且会话正确连续。这不是我面临的问题的解决方案,但它更像是一种解决方法。

我还必须处理不断出现的弹出窗口。我已经处理了NewWindow2事件以处理弹出窗口。

相关问题