pyppeteer 等待多个元素中的一个

327 篇文章 3 订阅
import asyncio
from pyppeteer import launch

async def find_report_element():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('https://example.com')
    await page.waitForSelector('div[widgetname=REPORT2], div[widgetname=REPORT2_c_c]')
    report_element = await page.querySelector('div[widgetname=REPORT2], div[widgetname=REPORT2_c_c]')
    await browser.close()
    return report_element

report_element = asyncio.get_event_loop().run_until_complete(find_report_element())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用 Pyppeteer 等待 XPath 元素时,可以使用 `page.waitForXPath()` 方法。此方法将返回一个 Promise,直到指定的 XPath 元素出现为止。 以下是一个例子: ```python import asyncio from pyppeteer import launch async def main(): browser = await launch() page = await browser.newPage() await page.goto('https://example.com') # 等待 XPath 元素出现 xpath = '//h1[text()="Example Domain"]' await page.waitForXPath(xpath) # 获取元素并打印内容 element = await page.xpath(xpath) print(await element[0].getProperty('textContent')) await browser.close() asyncio.get_event_loop().run_until_complete(main()) ``` 在上述代码,我们首先使用 `page.goto()` 方法导航到网页。然后,我们使用 `page.waitForXPath()` 方法等待指定的 XPath 元素出现。一旦元素出现,我们使用 `page.xpath()` 方法获取元素,并使用 `element[0].getProperty('textContent')` 获取元素的文本内容。最后,我们使用 `browser.close()` 方法关闭浏览器实例。 ### 回答2: 使用pyppeteer进行等待xpath元素的方法如下: 1. 首先,导入所需的库和模块: ```python import asyncio from pyppeteer import launch ``` 2. 创建一个异步函数,用于等待并返回指定xpath元素: ```python async def wait_for_xpath(xpath): browser = await launch() # 启动浏览器 page = await browser.newPage() # 创建新页面 await page.goto('https://example.com') # 打开要访问的网页 element = None # 初始化element变量 while element is None: try: element = await page.waitForXPath(xpath) # 等待指定xpath元素出现 except Exception as e: print(e) # 输出错误信息 await browser.close() # 关闭浏览器 return element # 返回找到的元素 ``` 3. 在主程序调用等待函数: ```python xpath = '//*[@id="example_xpath"]' element = asyncio.get_event_loop().run_until_complete(wait_for_xpath(xpath)) # 等待并获取指定xpath元素 print(element) ``` 在上述代码,我们首先使用pyppeteer启动一个浏览器并打开要访问的网页。然后,我们使用`waitForXPath()`函数等待指定的xpath元素出现,如果元素未出现,将会抛出异常,我们可以在异常处理输出错误信息。最后,我们关闭浏览器并返回找到的元素。 请注意,由于pyppeteer一个基于异步的库,我们需要使用`asyncio`来调用等待函数。在主程序,我们使用`asyncio.get_event_loop().run_until_complete()`来异步调用等待函数,并获取最终的结果。 希望上述信息能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值