gpt4 book ai didi

c# - 在 C# 中模拟 Javascript 'doPostBack()'

转载 作者:行者123 更新时间:2023-12-03 12:08:18 24 4
gpt4 key购买 nike

我正在为我的公司编写一个网络浏览器。为此,我们的客户允许我们访问他们的网站,但客户的 IT 团队不与我们沟通,因此我必须在没有来源帮助的情况下完成该程序。

他们的网站在所有按钮/下拉菜单上使用 JavaScript 将 postData 发送到服务器,以便屏幕更新以向最终用户显示正确的信息。

我正在尝试让我的程序模拟单击“下一页”。 “下一页”按钮有一个 onclick 事件,内容如下...

onclick="javascript:WebForm_DoPostBackWithOptions(
new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$ucTaxQueueListView$lviewOrderQueue$DataPager2$ctl00$btnNextPage"
, "", true, "", "", false, false))"

在我的 C# 程序中,我使用 HTTPWebRequest 类和 HTMLAgilityPack 分别执行请求/报废。

我已在代码中竭尽全力尝试使其正常工作。唯一有效的方法是使用 Fiddler 复制 postData 并将其逐字粘贴到我的 WebRequest 函数中。当我可能要转到 1000 多个“下一页”时,这是非常不切实际的。

我还尝试从页面中提取 ViewState 并使用它,但这总是给我一个“错误”页面。

任何帮助或指导将不胜感激,甚至会得到补偿......我的老板希望这个项目在本周末完成!

最佳答案

上次我不得不做类似的项目时,我采取了一种非常不同的方法。

我使用了 GreaseMonkey - 尽管您也可以使用具有相同效果的 Windows HTA 文件 -

我让 GreaseMonkey 脚本运行并逐页浏览页面。为了处理 DoPostBack,我只需调用相应元素上的单击处理程序。

我有多个数据存储。

一个数据存储涵盖了我“单击”的每个菜单项,以避免重复内容。

另一个数据存储是页面的原始 HTML(由 body.innerHTML 获取)

克隆完所有页面后,我编写了另一个 GreaseMonkey 脚本来加载每个保存的页面并从中获取我需要的任何信息。我构建了第三个资源数据存储(图像和 CSS),然后通过通过管道传输到 CuRL 的大文本文件将它们拉下来。

关于c# - 在 C# 中模拟 Javascript 'doPostBack()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com