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

使用Playwright端到端测试获取search按钮文本时innerText返回undefined如何解决

Playwright调用innerText返回undefined问题修复

错误原因

  • 执行时机错误:在HomePage构造函数中调用page.innerText()时,还未执行页面跳转逻辑,目标页面未加载,对应元素不存在,无法取到文本值。
  • 语法错误:选择器字符串缺少开头的单引号,原代码写为page.innerText(.RoundButton__root .RoundButton__root--blue'),.前缺失',属于语法错误。
  • 选择器逻辑错误:两个类名之间加了空格,代表查找.RoundButton__root的后代元素中带有.RoundButton__root--blue类的元素,如果两个类都作用在搜索按钮本身,需要去掉空格,否则无法匹配到对应元素。
  • 返回值缺失:getSearchButtonText方法仅执行了await操作,未返回取值结果,所以调用后拿到的是默认的undefined。

修复后代码

homePage.js

const { expect } = require('@playwright/test');

exports.HomePage = class HomePage {
    constructor(page) {
        this.page = page;
        // 构造函数仅存储元素定位器,不提前执行取值操作
        this.searchButton = page.locator('.RoundButton__root.RoundButton__root--blue');
      }

      async goto() {
        await this.page.goto('https://www.localsearch.com.au/');
      }
      
      async getSearchButtonText() {
        // 页面加载完成后再调用innerText取值,同时返回结果
        return await this.searchButton.innerText();
      }
      
}

home.js

原有测试代码无需修改,执行后即可正常打印搜索按钮的文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:24:01