此问题已在此处有答案:
How can I access the value of a promise?(14个答案)
4天前关闭。
我试图解决selenium中promise的返回,以获得它背后的文本/变量。使用Client.on
是因为我正在编写一个discord bot来webscrap页面的某些元素。
client.on("messageCreate", async (message) => {
if (message.author.bot) return;
if (message.content.startsWith('!FooBar')) {
await async function example() {
let driver = await new Builder().forBrowser('chrome').build()
try {
await driver.get(FooBar);
Title = await driver.getTitle();
console.log('Page title:', Title);
//No issue here
ABC = await driver.findElement(By.xpath('//div[contains(text(), "ABC")]/following-sibling::div')).getText();
console.log('THC Content:', THC);
//No issue here
imgSrc = await driver.findElement(By.css('img.logo')).getAttribute('src');
console.log('Image source:', imgSrc);
//here is where I encounter the problem
Type = await driver.findElement(By.css('div.status'))
console.log('Type:', Type.getText());
} catch (error) {
console.error(`Error occurred while scraping: ${error}`)
message.channel.send('Error during scraping');
}
}()
}
})
目前console.log记录Promise { Pending }
的变量行Type
,而它应该记录div类status中的文本:FooBar
。
我已经尝试了其他堆栈溢出页面的解决方案,但似乎不能适应我的问题的解决方案。
const hi = await driver.findElement(By.css('div.status'))
hi.then((response) =>
{
console.log(response.getText()
});
我似乎无法让.then()
方法工作
1条答案
按热度按时间hgqdbh6s1#
我设法找到了实现
.then()
的正确方法