如何在Playwright for .NET中获取定位器的URL属性?
在.NET Playwright中获取链接Href的正确方式
你遇到的编译错误是因为误用了JavaScript风格的方法命名,且忽略了.NET Playwright的异步API规范。.NET版Playwright遵循C#的命名约定,且大部分DOM操作方法为异步实现,以下是修正后的代码:
正确代码示例
var collectionOfLinks = await Page.GetByRole(Microsoft.Playwright.AriaRole.Link).AllAsync(); // 推荐使用foreach循环替代for循环,代码更简洁 foreach (var link in collectionOfLinks) { // 使用异步方法GetAttributeAsync获取href属性,需加await关键字 var linkUrl = await link.GetAttributeAsync("href"); // 在这里处理链接,比如打印、验证等 Console.WriteLine(linkUrl); }
关键说明
- .NET Playwright的
IElementHandle接口中,获取元素属性的正确方法是**GetAttributeAsync(string name)**,必须通过await等待异步操作完成 - 如果你需要将相对路径转换为绝对URL,可以结合当前页面URL进行拼接:
var absoluteUrl = new Uri(new Uri(Page.Url), linkUrl).ToString(); - 你之前尝试的
getAttribute、getHref均为JavaScript环境下的写法,不符合.NET版Playwright的API规范,因此会编译失败
内容的提问来源于stack exchange,提问作者Cranky Dragon
相关产品推荐
相关产品推荐

