frame method

Future<void> frame(
  1. [Object? frame]

Changes focus to another frame on the page. If frame is a: int: select by its zero-based index WebElement: select the frame for a previously found frame or iframe element. String: same as above, but only CSS id is provided. Note that this is not element id or frame id. not provided: selects the first frame on the page or the main document.

Throws NoSuchFrameException if the specified frame can't be found.


Future<void> frame([Object? /* int | WebElement | String */ frame]) async {
  if (frame is int?) {
    await _client.send(_handler.frame.buildSwitchByIdRequest(frame),
  } else if (frame is WebElement) {
    await _client.send(_handler.frame.buildSwitchByElementRequest(,
  } else if (frame is String) {
    final frameId = (await _driver.findElement(;
    await _client.send(_handler.frame.buildSwitchByElementRequest(frameId),
  } else {
    throw 'Unsupported frame "$frame" with type ${frame.runtimeType}';