You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

420 lines
14 KiB
C#

8 months ago
namespace PlaywrightStudy.Test
{
public class PlaywrightTest
{
#region Edge
[Fact]
public async void Baidu_Edge_Test()
{
using var playwright = await Playwright.CreateAsync();
//await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions()
//{
// SlowMo = 50, //<2F><><EFBFBD><EFBFBD>
// Headless = false, // <20>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>)
// Channel = "msedge", // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>chrome<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>()
// Devtools = false, // <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>
// ChromiumSandbox = false, // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3>
// ExecutablePath = string.Empty, // <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>Զ<EFBFBD>Ѱ<EFBFBD><D1B0> ms-playwright <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Args = new[] { "--enable-automation=true", "--disable-blink-features=AutomationControlled" }, // <20><>ֹselenium<75><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//});
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Edge<67><65><EFBFBD><EFBFBD>
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions()
{
//<2F>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>)
Headless = false,
});
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var browserContexts = browser.Contexts;
//ҳ<><D2B3>
var page = await browser.NewPageAsync();
//ҳ<><D2B3><EFBFBD><EFBFBD>Ӧ
var response = await page.GotoAsync("https://www.baidu.com/");
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var searchBoxLocator = page.GetByRole(AriaRole.Textbox).Nth(0);
//Ԫ<>ظ<EFBFBD><D8B8><EFBFBD>
var count = await searchBoxLocator.CountAsync();
//xUnit<69><74><EFBFBD><EFBFBD>
Assert.True(count > 0);
//Playwright<68><74><EFBFBD><EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchBoxLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
await searchBoxLocator.FillAsync("Playwright");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//await textboxLocator.TypeAsync(".net", new LocatorTypeOptions { Delay = 1000 });
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)
await searchBoxLocator.PressSequentiallyAsync(".NET", new LocatorPressSequentiallyOptions { Delay = 200 });
//<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>("Shift+Home"<22><>"Alt+Enter")]
//await searchBoxLocator.PressAsync("Enter");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
var searchButtonLocator = page.Locator("#su");
var searchButtonCount = await searchButtonLocator.CountAsync();
//<2F><><EFBFBD><EFBFBD>:<3A><>ť<EFBFBD>ҵ<EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchButtonLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
await searchButtonLocator.ClickAsync();
//ʹ<><CAB9> page.Keyboard <20><> page.Mouse <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
//await page.Keyboard.PressAsync("Enter");
//await page.Mouse.ClickAsync(100, 100);
await page.WaitForLoadStateAsync();
//<2F><>ͼ
await page.ScreenshotAsync(new()
{
Path = "Baidu.Edge.Screenshot.png"
});
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ΪPdf<64>ļ<EFBFBD>
await page.PdfAsync(new()
{
Path = "Baidu.Edge.pdf",
DisplayHeaderFooter = false,
Format = "A4"
});
}
[Fact]
public async void Bing_Edge_Test()
{
using var playwright = await Playwright.CreateAsync();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Edge<67><65><EFBFBD><EFBFBD>
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions()
{
//<2F>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>)
Headless = false,
});
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var browserContexts = browser.Contexts;
//ҳ<><D2B3>
var page = await browser.NewPageAsync();
//ҳ<><D2B3><EFBFBD><EFBFBD>Ӧ
var response = await page.GotoAsync("https://cn.bing.com/");
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
Assert.Equal(200, response?.Status);
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var searchBoxLocator = page.Locator("input#sb_form_q");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var count = await searchBoxLocator.CountAsync();
//xUnit<69><74><EFBFBD><EFBFBD>
Assert.True(count > 0);
//Playwright<68><74><EFBFBD><EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchBoxLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//await searchBoxLocator.FillAsync("Playwright");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)
await searchBoxLocator.PressSequentiallyAsync("Playwright.NET", new LocatorPressSequentiallyOptions { Delay = 200 });
//<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>("Shift+Home"<22><>"Alt+Enter")]
await searchBoxLocator.PressAsync("Enter");
await page.WaitForLoadStateAsync();
//<2F><>ͼ
await page.ScreenshotAsync(new()
{
Path = "Bing.Edge.Screenshot.png"
});
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ΪPdf<64>ļ<EFBFBD>
await page.PdfAsync(new()
{
Path = "Bing.Edge.pdf",
DisplayHeaderFooter = false,
Format = "A4"
});
}
#endregion
#region Chrome
/// <summary>
/// <20>Ƚ<EFBFBD><C8BD><EFBFBD>ϸ
/// </summary>
[Fact]
public async void Baidu_Chrome_Test()
{
using var playwright = await Playwright.CreateAsync();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> chrome
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions()
{
SlowMo = 50, //<2F><><EFBFBD><EFBFBD>
Headless = false, // <20>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>)
Channel = "chrome", // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>chrome<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>()
Devtools = false, // <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>
ChromiumSandbox = true, // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3>
ExecutablePath = string.Empty, // <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>Զ<EFBFBD>Ѱ<EFBFBD><D1B0> ms-playwright <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DownloadsPath = "download",
});
//ҳ<><D2B3>
var page = await browser.NewPageAsync();
//ҳ<><D2B3><EFBFBD><EFBFBD>Ӧ
var response = await page.GotoAsync("https://www.baidu.com/");
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var searchBoxLocator = page.GetByRole(AriaRole.Textbox).Nth(0);
//Ԫ<>ظ<EFBFBD><D8B8><EFBFBD>
var count = await searchBoxLocator.CountAsync();
//xUnit<69><74><EFBFBD><EFBFBD>
Assert.True(count > 0);
//Playwright<68><74><EFBFBD><EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchBoxLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//await searchBoxLocator.FillAsync("Playwright");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)
await searchBoxLocator.PressSequentiallyAsync("Playwright.NET", new LocatorPressSequentiallyOptions { Delay = 200 });
//<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>("Shift+Home"<22><>"Alt+Enter")]
await searchBoxLocator.PressAsync("Enter");
//<2F>ȴ<EFBFBD>
await page.WaitForLoadStateAsync(LoadState.DOMContentLoaded);
//<2F><>ͼ
await page.ScreenshotAsync(new()
{
Path = "Baidu.Chrome.Screenshot.png"
});
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ΪPdf<64>ļ<EFBFBD>
await page.PdfAsync(new()
{
Path = "Baidu.Chrome.pdf",
DisplayHeaderFooter = false,
Format = "A4"
});
}
#endregion
#region Firefox
[Fact]
public async void Baidu_Firefox_Test()
{
using var playwright = await Playwright.CreateAsync();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> chrome
await using var browser = await playwright.Firefox.LaunchAsync(new BrowserTypeLaunchOptions()
{
SlowMo = 50, //<2F><><EFBFBD><EFBFBD>
Headless = false, // <20>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>
Devtools = false, // <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>
ChromiumSandbox = true, // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3>
ExecutablePath = string.Empty, // <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>Զ<EFBFBD>Ѱ<EFBFBD><D1B0> ms-playwright <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DownloadsPath = "download",
});
//ҳ<><D2B3>
var page = await browser.NewPageAsync();
//ҳ<><D2B3><EFBFBD><EFBFBD>Ӧ
var response = await page.GotoAsync("https://www.baidu.com/");
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var searchBoxLocator = page.GetByRole(AriaRole.Textbox).Nth(0);
//Ԫ<>ظ<EFBFBD><D8B8><EFBFBD>
var count = await searchBoxLocator.CountAsync();
//xUnit<69><74><EFBFBD><EFBFBD>
Assert.True(count > 0);
//Playwright<68><74><EFBFBD><EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchBoxLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//await searchBoxLocator.FillAsync("Playwright");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)
await searchBoxLocator.PressSequentiallyAsync("Playwright.NET", new LocatorPressSequentiallyOptions { Delay = 200 });
//<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>("Shift+Home"<22><>"Alt+Enter")]
await searchBoxLocator.PressAsync("Enter");
//<2F>ȴ<EFBFBD>
await page.WaitForLoadStateAsync(LoadState.DOMContentLoaded);
//<2F><>ͼ
await page.ScreenshotAsync(new()
{
Path = "Baidu.Firefox.Screenshot.png"
});
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ΪPdf<64>ļ<EFBFBD>:FireFox<6F><78>֧<EFBFBD><D6A7>
//await page.PdfAsync(new()
//{
// Path = "Baidu.Firefox.pdf",
// DisplayHeaderFooter = false,
// Format = "A4"
//});
}
[Fact]
public async void Bing_Firefox_Test()
{
using var playwright = await Playwright.CreateAsync();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> chrome
await using var browser = await playwright.Firefox.LaunchAsync(new BrowserTypeLaunchOptions()
{
SlowMo = 50, //<2F><><EFBFBD><EFBFBD>
Headless = false, // <20>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>
Devtools = false, // <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>
ChromiumSandbox = true, // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3>
ExecutablePath = string.Empty, // <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>Զ<EFBFBD>Ѱ<EFBFBD><D1B0> ms-playwright <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DownloadsPath = "download",
});
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var browserContexts = browser.Contexts;
//ҳ<><D2B3>
var page = await browser.NewPageAsync();
//ҳ<><D2B3><EFBFBD><EFBFBD>Ӧ
var response = await page.GotoAsync("https://cn.bing.com/");
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
Assert.Equal(200, response?.Status);
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var searchBoxLocator = page.Locator("input#sb_form_q");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var count = await searchBoxLocator.CountAsync();
//xUnit<69><74><EFBFBD><EFBFBD>
Assert.True(count > 0);
//Playwright<68><74><EFBFBD><EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchBoxLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//await searchBoxLocator.FillAsync("Playwright");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)
await searchBoxLocator.PressSequentiallyAsync("Playwright.NET", new LocatorPressSequentiallyOptions { Delay = 200 });
//<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>("Shift+Home"<22><>"Alt+Enter")]
await searchBoxLocator.PressAsync("Enter");
await page.WaitForLoadStateAsync();
//<2F><>ͼ
await page.ScreenshotAsync(new()
{
Path = "Bing.Firefox.Screenshot.png"
});
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ΪPdf<64>ļ<EFBFBD>
//await page.PdfAsync(new()
//{
// Path = "Bing.Firefox.pdf",
// DisplayHeaderFooter = false,
// Format = "A4"
//});
}
#endregion
#region WebKit
[Fact]
public async void Baidu_WebKit_Test()
{
using var playwright = await Playwright.CreateAsync();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> chrome
await using var browser = await playwright.Webkit.LaunchAsync(new BrowserTypeLaunchOptions()
{
SlowMo = 50, //<2F><><EFBFBD><EFBFBD>
Headless = false, // <20>ر<EFBFBD><D8B1><EFBFBD>ͷģʽ(<28>н<EFBFBD><D0BD><EFBFBD>
Devtools = false, // <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>߹<EFBFBD><DFB9><EFBFBD>
ChromiumSandbox = true, // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3>
ExecutablePath = string.Empty, // <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>Զ<EFBFBD>Ѱ<EFBFBD><D1B0> ms-playwright <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DownloadsPath = "download",
});
//ҳ<><D2B3>
var page = await browser.NewPageAsync();
//ҳ<><D2B3><EFBFBD><EFBFBD>Ӧ
var response = await page.GotoAsync("https://www.baidu.com/");
//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var searchBoxLocator = page.GetByRole(AriaRole.Textbox).Nth(0);
//Ԫ<>ظ<EFBFBD><D8B8><EFBFBD>
var count = await searchBoxLocator.CountAsync();
//xUnit<69><74><EFBFBD><EFBFBD>
Assert.True(count > 0);
//Playwright<68><74><EFBFBD><EFBFBD>
await Microsoft.Playwright.Assertions.Expect(searchBoxLocator).ToHaveCountAsync(1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>(һ<><D2BB><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//await searchBoxLocator.FillAsync("Playwright");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ󲿷<DDBA><><C4A3><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>룺ÿ<EBA3BA><C3BF><EFBFBD>ַ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ)
await searchBoxLocator.PressSequentiallyAsync("Playwright.NET", new LocatorPressSequentiallyOptions { Delay = 200 });
//<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>("Shift+Home"<22><>"Alt+Enter")]
await searchBoxLocator.PressAsync("Enter");
//<2F>ȴ<EFBFBD>
await page.WaitForLoadStateAsync(LoadState.DOMContentLoaded);
//<2F><>ͼ
await page.ScreenshotAsync(new()
{
Path = "Baidu.WebKit.Screenshot.png"
});
//<2F><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ΪPdf<64>ļ<EFBFBD>:FireFox<6F><78>֧<EFBFBD><D6A7>
//await page.PdfAsync(new()
//{
// Path = "Baidu.WebKit.pdf",
// DisplayHeaderFooter = false,
// Format = "A4"
//});
}
#endregion
}
}