1 //如果沒有下載驅動.可以使用以下代碼自動安裝 (以下代碼僅供參考)
2 //Microsoft.Playwright.Program.Main(new[] { "install" });
3 var playwright = await Playwright.CreateAsync();
4 //BrowserTypeLaunchPersistentContextOptions 不是必須的.供參考
5 BrowserTypeLaunchPersistentContextOptions bto = new BrowserTypeLaunchPersistentContextOptions { Headless = false, ExecutablePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "chromedriver_win32", "chrome-win", "chrome.exe") };
6 //bto.IgnoreDefaultArgs = new[] { "--enable-automation" };
7 //bto.IgnoreAllDefaultArgs = true;
8 var browser = await playwright.Chromium.LaunchPersistentContextAsync(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "chromedriver_win32", "webDir"), bto);
9 //https://www.selenium.dev/documentation/webdriver/browsers/chrome/ 查詢瀏覽器的可用參數
10
11 var page = browser.Pages.First();
12
13
14 await page.GotoAsync("https://fanyi.youdao.com/index.html#/");
15 await page.AddScriptTagAsync(new PageAddScriptTagOptions() { Path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "files", "jquery-3.4.1.min.js") });
16 //下載數據.
17 var down = page.RunAndWaitForDownloadAsync(async () =>
18 {
19 await page.EvaluateAsync("$('.download .item:eq(0)').click()");
20 });
21 await Task.WhenAny(down, Task.Delay(6 * 60 * 1000));
22 var dd = await down;
23 Stream sm = await dd.CreateReadStreamAsync();
24 await browser.CloseAsync();
25 await browser.DisposeAsync();
26 playwright.Dispose();