C# 网页浏览器控件 window.name
C# WebBrowser control window.name
我正在尝试使用 WebBrowser 控件在 WPF 应用程序中自动化站点。
站点检查每个页面中的 javascript window.name,如果与预设值不匹配则抛出错误。
请看下面的示例。
var id="1234";
if (window.name != id)
{
window.open("home.html", id)
}
有没有办法在我创建新的 WebBrowser 对象时获取并设置该值?
我尝试了以下方法并解决了我的问题。希望这可能对某人有所帮助。
我首先使用此代码将页面导航到空白页面。
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);
弹出 window 名称已更改为我想要的名称,并且会话正确继续。这不是我遇到的问题的解决方案,但它更像是一种变通方法。
我还必须处理不断出现的弹出窗口。我已经处理了 NewWindow2 事件来处理弹出窗口。
我正在尝试使用 WebBrowser 控件在 WPF 应用程序中自动化站点。
站点检查每个页面中的 javascript window.name,如果与预设值不匹配则抛出错误。
请看下面的示例。
var id="1234";
if (window.name != id)
{
window.open("home.html", id)
}
有没有办法在我创建新的 WebBrowser 对象时获取并设置该值?
我尝试了以下方法并解决了我的问题。希望这可能对某人有所帮助。
我首先使用此代码将页面导航到空白页面。
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);
弹出 window 名称已更改为我想要的名称,并且会话正确继续。这不是我遇到的问题的解决方案,但它更像是一种变通方法。
我还必须处理不断出现的弹出窗口。我已经处理了 NewWindow2 事件来处理弹出窗口。