小弟用HttpWebRequest来模拟登陆并从一个网站上下载文件,这个网站下载文件的具体流程如下:1,用户名密码登陆。2,输入检索条件,检索条件作为POST的数据被提交到下一页面。3,在下一页面会展示一些根据第2部检索出来的信息,继续在第3步展示的页面进行条件的输入,点击下载,完成文件的下载。第3步中的点击下载是一个onclick的js,我只能想到用F12查看POST数据并继续模拟请求得到HttpWebResponse并获取流,从流中下载文件。
问题:上述步骤中,我用HttpWebRequest进行登陆并保存Cookie到第2步,问题是,我如何保存第2步中的检索条件到第3步?还是面对此类问题有其他更好的方法而不是用HttpWebRequest?
同学你适合玩玩webDriver就行了。这个不是这么玩的,数据的模拟很多时候不需要视图数据一步一步来——除非像阿里那样全动态页面。
请问有没有一个比较完整的文档或者教程可以看看的。谢过
@wall-ee:
protected RemoteWebDriver CreateWebDriver()
{
var chromeOptions = new ChromeOptions();
chromeOptions.AddAdditionalCapability(CapabilityType.UnexpectedAlertBehavior, "accept", true);
chromeOptions.AddArgument("no-sandbox");
chromeOptions.AddArgument("--disable-popup-blocking");
chromeOptions.AddArgument("--disable-notifications");
chromeOptions.AddUserProfilePreference("download.default_directory", Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Abc"));
//chromeOptions.AddArgument("--disable-extensions");
//chromeOptions.BinaryLocation = @"Chrome\chrome.exe";
//chromeOptions.AddAdditionalCapability(CapabilityType.HandlesAlerts, false);
var chromeDriverService = ChromeDriverService.CreateDefaultService();//binPath + "/driver"
chromeDriverService.HideCommandPromptWindow = true;
var remoteDriver = new ChromeDriver(chromeDriverService, chromeOptions);
remoteDriver.Manage().Cookies.DeleteAllCookies();
return remoteDriver;
}
@花飘水流兮: 通过你的方法解决了问题,谢谢