我正在通过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;
任何帮助或想法都将不胜感激,