【问题标题】:How to POST with hidden value and get response from a popup window如何使用隐藏值发布并从弹出窗口中获取响应
【发布时间】:2019-07-17 16:43:12
【问题描述】:

我正在使用一个使用 javascript 和 url-hiding 的公共网站,所以我不知道它是否是 php/asp,也不知道如何设置 POST。这是网站... (https://emops.twse.com.tw/server-java/t58query)

我需要做的是以编程方式单击每个 VIEW 按钮并在弹出的窗口中检索 html/response,并在加载到 html/response/string 后关闭窗口

通常我会使用 sql 命令从数据库执行此操作或将其导出到 Excel,但我无权访问此网站。我对可能使用 javascripts 执行此操作的前端方式不是很熟悉...

我能想到的唯一“方法”是使用 WebBrowser Control 加载页面并调用“onclick”操作。但在那之后,我不确定我是否可以使用 shell32.dll 来 FindWindow 并读取其所有内容然后关闭它......而且我不想涉及非托管代码。

我只设法用 HtmlAgilityPack 解析页面,但我还没有找到如何调用 CLICK(充当 POST)以及如何从弹出窗口(来自 CLICKING)获得响应。 .

private void ParseHtmlUsingAgilityPack(WebBrowser wbMOP)
    {
        HTMLDocument htmlDoc = (HTMLDocument)wbMOP.Document;

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(htmlDoc.documentElement.innerHTML);
        HtmlNodeCollection bodyNodes = doc.DocumentNode.SelectNodes("//form//table//tbody//td//input/@onclick"); //input/@value

        List<string> listOfAttStr = new List<string>();

        if (bodyNodes != null)
        {
            foreach (HtmlNode link in bodyNodes)
            {
                foreach (HtmlAttribute ha in link.Attributes)
                {
                    if (ha.ValueLength > 24 && ha.Value.Substring(0, 22) == "document.fm_t05sr01_1.")
                    {
                        listOfAttStr.Add(ha.Value);
                    }
                }

            }

            // write into text file here...
        }

    }

【问题讨论】:

    标签: javascript c# php asp.net wpf


    【解决方案1】:

    我会使用selenium 来完成这类任务。例如看这个答案: https://stackoverflow.com/a/14943813/11776368 用于处理弹出窗口。

    【讨论】:

    • 感谢您的反馈,但我在使用 C++/WinAPI 的函数获取主窗口或弹出窗口进程句柄时没有问题。问题是即使有了这些句柄,如果没有我希望在这里进行的某种“管理”,您就无法查看进程窗口的 innerHTML。此外,使用 FindWindow,在睡眠或等待时,它会抓取它,但它不会检测页面是否已完全加载。因此,我希望使用 WebBrowser 来触发 LoadComplete 事件并获取文档
    • 你可以用硒做到这一点。检测到弹出窗口后,您只需等待,直到弹出窗口中的表格可见。 (wait.until visibilityOfElementLocated)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多