咸阳网站建设公司电话寻花问柳专注做男人喜爱的网站
咸阳网站建设公司电话,寻花问柳专注做男人喜爱的网站,wordpress搭建多个购物网站,网站建设信息表下面介绍一下 Playwright 中的基本概念#xff1a;Headless 浏览器Playwright 需要特定版本的浏览器二进制文件才能运行。这些浏览器都支持 2 种 运行模式#xff1a;Headless#xff0c;无浏览器 UI#xff0c;运行速度较快#xff0c;常用于自动化运行Headed#xff0c… 下面介绍一下 Playwright 中的基本概念Headless 浏览器Playwright 需要特定版本的浏览器二进制文件才能运行。这些浏览器都支持 2 种 运行模式Headless无浏览器 UI运行速度较快常用于自动化运行Headed有浏览器 UI常用于调试代码Playwright 默认使用的是 Headless 模式设置BrowserTypeLaunchOptions可以关闭 Headless 模式var browser await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless false });对象模型Playwright 定义了如下这些对象模型Browser 浏览器Browser是 Playwright 通过BrowserType.LaunchAsync(options)方法创建的浏览器对象。可选的 BrowserType 包括ChromiumPlaywright 默认使用开源的 Chromium 浏览器。但是可以通过参数指定使用 Google Chrome 或者 Microsoft Edge 浏览器using var playwright await Playwright.CreateAsync();
var chromium playwright.Chromium;// channel 参数指定浏览器分发通道。值可以为“chrome”、“chrome-beta”、“chrome-dev”、“chrome-canary”、“msedge”、“msedge-beta”、“msedge-dev”、“msedge-canary”
var browser await chromium.LaunchAsync(
new BrowserTypeLaunchOptions { Channel chrome });Firefox与最近的 Firefox 稳定版相匹配。WebKit与最近的 WebKit trunk 版本相匹配版本领先于 Apple Safari 和其他基于 WebKit 的浏览器。BrowserContext 浏览器上下文BrowserContext 提供了一种操作多个独立浏览器会话的方法。每个Browser实例都包含一个默认的BrowserContext实例。可以使用Browser.NewContextAsync方法创建“隐身”浏览器上下文。“隐身”浏览器上下文类似于 Google Chrome 的无痕式窗口可以在浏览器会话之间隔离浏览器状态var browserContext1 await browser.NewContextAsync();
Console.WriteLine($browserContext1 Session {await GetSession(browserContext1)});
Console.WriteLine($browserContext1 Session {await GetSession(browserContext1)});var browserContext2 await browser.NewContextAsync();
Console.WriteLine($browserContext2 Session {await GetSession(browserContext2)});private static async Taskstring GetSession(IBrowserContext browserContext)
{var page await browserContext.NewPageAsync();await page.GotoAsync(https://account.cnblogs.com/signin);var cookies await browserContext1.CookiesAsync();return cookies.First(p p.Name .Cnblogs.Account.Session).Value;
}//同一浏览器上下文获得的会话ID相同
browserContext1 Session CfDJ8AuMt%2F3FvyxIgNOR82PHE4no0sUf7I3NiZ5vRmbIv9lQrRo3aoAkQ7RAm4ddlBoLAk40iVfg10%2F%2FRvnRY5MCZ6zeVMunRoeM3mqKkyh0nWK5HWvj7RAq1krRzqA%2BQW%2BXCqpdf3kBJvmjC1uACr3h4kVeaY2nqTY%2FRJ3Tp55Fo3aS
browserContext1 Session CfDJ8AuMt%2F3FvyxIgNOR82PHE4no0sUf7I3NiZ5vRmbIv9lQrRo3aoAkQ7RAm4ddlBoLAk40iVfg10%2F%2FRvnRY5MCZ6zeVMunRoeM3mqKkyh0nWK5HWvj7RAq1krRzqA%2BQW%2BXCqpdf3kBJvmjC1uACr3h4kVeaY2nqTY%2FRJ3Tp55Fo3aS//不同浏览器上下文获得的会话ID不同
browserContext2 Session CfDJ8AuMt%2F3FvyxIgNOR82PHE4k6gMjjX4oHDpKiyNDycdgnx5YlW%2Bd00yS1ztwodcO6QH%2B38HHwyzdNQ3ClVdlstFdcrJw0TDLqq6atFm%2F%2FH3TcLc18%2BQEN0MOQmRbFT39hq77AZ%2FF%2BlZ2bc9svnB%2FEpU%2FDmiP5eLWXK9V2Fn0jKIiMPage 页面Page是指浏览器上下文中的单个选项卡或弹出窗口。每个BrowserContext可以有多个Page。var page await browserContext.NewPageAsync();
await page.GotoAsync(https://account.cnblogs.com/signin);Frame 框架一个Page可以包含一个或多个Frame对象。每个页面都有一个MainFrame并且假定页面级交互如点击在MainFrame中操作。可以通过访问这些Frame以进行框架内的交互。var page await browser.NewPageAsync();
await page.GotoAsync(https://www.w3school.com.cn/tiy/t.asp?feg_html_frame_mix);
DumpFrameTree(page.MainFrame, string.Empty);//显示 Frame 嵌套树
private static void DumpFrameTree(IFrame frame, string indent)
{Console.WriteLine(${indent}{frame.Url});foreach (var child in frame.ChildFrames)DumpFrameTree(child, indent );
}Locator 定位器Locator代表了一种随时在页面上查找元素的方法。可以使用Page.Locator(selector, options)方法创建定位器。//查找 title 元素例如title百度一下你就知道/title
var locator page.Locator(title);
Console.WriteLine(await locator.InnerTextAsync());结论通过灵活应用上述对象模型以及对象模型提供的方法我们可以实现编写代码来创建新的浏览器页面导航到 URL然后与页面上的元素进行交互。添加微信号【MyIO666】邀你加入技术交流群
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88067.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!