2

我目前正在使用 AngleSharp 构建一个用于网络自动化的应用程序。我已成功登录网站,但使用 context.Active.QuerySelectorAll 找不到我要查找的元素。

我知道这可能是因为某些 JavaScript 没有在我正在搜索的 HTML 中运行,根据此链接:通过“查看源代码”显示的 HTML 与(Firebug)开发人员工具中显示的 HTML 是否不同?

在查找特定元素之前,如何强制 AngleSharp 执行所有 JavaScript?

代码:

var config = AngleSharp.Configuration.Default.WithDefaultLoader().WithCookies().WithJavaScript().WithCss();
            var browsingContext = BrowsingContext.New(config);

            await browsingContext.OpenAsync("https://users.premierleague.com/");
            await browsingContext.Active.QuerySelector<IHtmlFormElement>("form[action='/accounts/login/']").SubmitAsync(new
            {
                login = "abc@gmail.com",
                password = "password"
            });
            await browsingContext.OpenAsync("https://fantasy.premierleague.com/a/team/my/");

到目前为止一切正常,我可以确认我已登录。但是,我似乎无法获得以下值的返回值:

var x = browsingContext.Active.QuerySelectorAll("*").Where(m => m.ClassName == "ismjs-link ism-link ism-link--more");

我知道这个元素是存在的,因为我已经通过 Google Chrome 上的“检查”功能检查了很多次。

我错过了什么/如何让 JavaScript 运行?

谢谢!

4

0 回答 0