我打开了一个SSO弹出窗口,如何点击弹出窗口中的链接?

时间:2014-01-10 15:37:20

标签: c# javascript asp.net hyperlink popup

我正在通过ASP / C#页面访问SSO并使用以下代码打开一个弹出窗口:

 string s = "window.open('" + getSSOlink(ah1.InstitutionUserID, cardnumber) + "','popup_window', 'width=980,height=600,resizable=yes');";
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);

打开弹出窗口后,我需要点击弹出窗口深处的2个链接导航到页面的特定部分。第一页上的id是id25,第二页上的id是cuRewardsLink,每次SSO打开时它都是相同的。点击第二个链接后,用户将被定向到奖励系统。

我正在尝试找到一种方法来打开一个自动导航到Rewards页面的新浏览器窗口。理想情况下,他们不会在弹出窗口中看到前两页的加载,只是最终目的地。弹出窗口中的链接没有静态URL,有一个AJAX函数从创建链接的点击返回信息。

弹出窗口打开后,我不确定如何访问当前浏览器窗口(弹出窗口)中的HTML元素。我尝试使用WebBrowser类导航到页面,等待加载,然后单击链接,但得到“ThreadState异常 - 无法实例化ActiveX控件,因为当前线程不在单线程单元中”:

WebBrowser browser = new WebBrowser();                    
browser.Navigate(getSSOlink(ah1.InstitutionUserID, cardnumber));
Thread.Sleep(1000);
browser.Document.GetElementById("id25").InvokeMember("Click");
Thread.Sleep(1000);
browser.Document.GetElementById("cuRewardsLink").InvokeMember("Click");
browser.Visible = true;

任何帮助或想法都将不胜感激,

0 个答案:

没有答案