我正在将工作从使用无法检测到的 Chrome 驱动程序转换为使用 nodriver 库 (https://github.com/ultrafunkamsterdam/nodriver)。我需要帮助处理警报,因为我在 API 文档中找不到相关信息。
这是我想要实现的目标的具体示例:
您能否提供有关如何使用 nodriver 完成此操作的指南或代码示例?
对不起我的英语...我来自巴西,希望你理解
在研究文档时我发现可以获取警报文本,但我不知道如何单击警报。所以,请参阅下面的代码:
import nodriver as uc
import asyncio
class NodriverAlert():
def __init__(self):
self.browser = None
self.alert_message = ''
async def js_alert_message(self, event: uc.cdp.page):
if 'JavascriptDialogOpening' in str(type(event)):
# print(f'Alert class return: {event}')
self.alert_message = event.message
print(f'The alert message is: {self.alert_message}')
async def main(self):
url = 'https://github.com/ultrafunkamsterdam/nodriver'
self.browser = await uc.start()
tab = await self.browser.get(url)
# We'll need to add a handler
tab.add_handler(uc.cdp.page, self.js_alert_message)
# Now, create an alert
await tab.evaluate('alert("Hello StackOverflow!!!")')
# After alert if we dont interact t
example = NodriverAlert()
asyncio.run(example.main())
通过上面的代码,我们得到警报文本,在某些情况下可以是 util,但不可能继续执行,因为 nodriver 在警报中停止。