You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取选中链接或按钮的文本?谷歌页面Tab导航场景示例

解决方法:获取Tab聚焦控件的文本

嘿,我来帮你搞定这个需求!你要在导航到谷歌页面后,按6次Tab键获取当前高亮控件(也就是隐私链接)的文本对吧?结合你给出的测试代码,我给你补全并优化一下实现方案:

完整测试代码(基于Playwright .NET)

[Test]
public void GooglePageTabNavigation()
{
    var googlePage = Go.To<GooglePage>();
    
    // 连续按下6次Tab键(保留了你原有的等待逻辑,后续可以优化)
    for (int i = 0; i < 6; i++)
    {
        googlePage.Press(Keys.Tab);
        googlePage.Wait(1); // 更推荐用Playwright官方的WaitForTimeoutAsync(1000)替代固定Wait
    }

    // 方法1:通过JavaScript直接获取当前聚焦元素的文本
    string focusedElementText = googlePage.EvaluateAsync<string>("document.activeElement.textContent").Result;

    // 方法2:通过Locator定位聚焦元素(两种方法选其一即可)
    // string focusedElementText = googlePage.Locator(":focus").TextContentAsync().Result;

    // 这里可以添加断言或输出逻辑
    Console.WriteLine("当前聚焦控件的文本:" + focusedElementText);
    // Assert.AreEqual("隐私", focusedElementText); // 根据实际显示的文本调整断言内容
}

关键知识点说明

  • 获取聚焦元素:
    • document.activeElement是浏览器原生API,会返回当前页面中获得焦点的元素,完全适配你按Tab键切换焦点的场景。
    • 用:focus伪类选择器配合Playwright的Locator,也能精准定位到当前高亮的控件。
  • 文本获取:
    • textContent会获取元素包含的所有文本内容(包括子节点文本),适合链接、按钮这类控件。如果只需要元素自身的可见文本,也可以用innerText替代。
  • 优化建议:
    原代码里的固定Wait(1)其实不太推荐,Playwright更建议用等待元素状态的方式替代固定延迟,比如如果知道下一个聚焦元素的特征,可以提前等待它可交互,但如果只是单纯模拟Tab切换,固定延迟也能满足需求。

内容的提问来源于stack exchange,提问作者oceano1970526

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:48:03