如何获取选中链接或按钮的文本?谷歌页面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
相关产品推荐
相关产品推荐

