保持 Watin 会话活动

本文关键字:活动 会话 Watin 保持 | 更新日期: 2023-09-27 18:36:53

我正在尝试使用 Watin 登录网站,我想保留会话,这样我就不会每次都登录。

但是,每次我调用 LogIn 时,if (browser.ContainsText(isLoggedInClass))永远不会找到我可以在打开的浏览器中看到的内容。

我添加了行string checkHtmltoSeeIfClassExists = browser.Body.Parent.OuterHtml;以物理检查字符串是否包含在 html 中。

我有点卡住了,因为沃廷似乎只是没有坚持会议?有没有人知道出了什么问题?

到目前为止,我拥有的代码如下

using WatiN.Core;
namespace ProjectXYZ
{
    class Navigate
    {
        private IE browser;
        public void LogIn()
        {
            const string isLoggedInClass = "gwt-Hyperlink optionLink optionLink_myAccount";
            if (browser == null)
                browser = new IE("https://www.somewebsite.com");
            string checkHtmltoSeeIfClassExists = browser.Body.Parent.OuterHtml;
            if (browser.ContainsText(isLoggedInClass))
            {
                string test = "class found!";
            }
            else
            {
                browser.TextField(Find.ByName("username")).Value = xx.un;
                browser.TextField(Find.ByName("userpass")).Value = xx.pw;
                browser.Button(Find.ByTitle("Login")).Click();
            }
        }
    }
}

保持 Watin 会话活动

你想要的机制是内置在WatiN框架中的AttachTo<>函数。 由于 WatiN 仅支持单线程单元状态,因此您必须手动管理会话。

上面的链接有一个使用"AttachTo<>"的代码示例,但为了彻底起见,我在下面也提供了一个。

var IE = IE.AttachTo<IE>(Find.ByUrl(someURLHere));