[Home](./index.md) > [puppeteer](./puppeteer.md) > [BrowserContext](./puppeteer.browsercontext.md) > [waitForTarget](./puppeteer.browsercontext.waitfortarget.md)
## BrowserContext.waitForTarget() method
This searches for a target in this specific browser context.
Signature:
```typescript
waitForTarget(predicate: (x: Target) => boolean, options?: {
timeout?: number;
}): Promise;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| predicate | (x: [Target](./puppeteer.target.md)) => boolean | A function to be run for every target |
| options | { timeout?: number; } | An object of options. Accepts a timout, which is the maximum wait time in milliseconds. Pass 0
to disable the timeout. Defaults to 30 seconds. |
Returns:
Promise<[Target](./puppeteer.target.md)>
Promise which resolves to the first target found that matches the `predicate` function.
## Example
An example of finding a target for a page opened via `window.open`:
```js
await page.evaluate(() => window.open('https://www.example.com/'));
const newWindowTarget = await browserContext.waitForTarget(target => target.url() === 'https://www.example.com/');
```