选择 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
之外,是否有直接选择其他元素的方法?通过附加到属性的值?
最佳答案
load
在 await page.waitForNavigation({ waitUntil: load })
未设置为 ''
这导致了 <span />
不在那里,点击登录按钮后...
关于javascript - 单击带有文本属性的 <span/> 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54958917/