javascript - 单击带有文本属性的 <span/> 未按预期工作

标签 javascript jestjs puppeteer

选择 input元素并用一定的值填充它很简单

元素

<input class='foo' type="test" name="userName" placeholder="Enter Your Name..." />

带有 click() 函数的代码

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      '--incognito'
    ]
  });
  const page = await browser.newPage()
  await page.goto('...')
  await page.type('input[name=userName]', 'test@test.com')
  ....
})();

我使用 input[name=userName]选择想要的 HTML元素。 但是,当我尝试使用 <span /> 时和 text属性,它不起作用。

元素

<span text="foo" id class="bar" />

带有 click() 函数的代码

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      '--incognito'
    ]
  });
  const page = await browser.newPage()
  await page.goto('...')
  await page.type('input[name=userName]', 'test@test.com')
  ....
  await page.waitForNavigation({ waitUntil: load })
  await page.click('span[text=foo]'); // <-- not working
})();

除了 input 之外,是否有直接选择其他元素的方法?通过附加到属性的值?

最佳答案

loadawait page.waitForNavigation({ waitUntil: load })未设置为 ''这导致了 <span />不在那里,点击登录按钮后...

关于javascript - 单击带有文本属性的 <span/> 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54958917/

相关文章:

javascript - FLEX 应用程序,禁用后退按钮和退格/删除键从 FLEX 应用程序中弹出

javascript - 如何检测右键单击+左键单击

google-chrome-devtools - 在 puppeteer 中如何等待 DOM 元素加载然后单击

没有从 ASP.NET MVC HTML View 调用 JavaScript 函数

javascript - 如何让 div 出现在 <select> 中选择的选项类?

javascript - 开 Jest : how to test setInterval

javascript - Vue 测试 - '... .push is not a function'

reactjs - 如何使用@testing-library/react 测试 Ant 设计日期选择器?

puppeteer - 在 puppeteer 中如何等待弹出页面完成加载?

javascript - 不考虑 puppeteer 输入字段