From 0d20e1f3238ca70ccb528867fb1456487c02d0df Mon Sep 17 00:00:00 2001
From: yokra <53964890+yokra9@users.noreply.github.com>
Date: Mon, 12 Apr 2021 20:56:16 +0900
Subject: [PATCH] fix(webdriverjs): Recursively find (#209)
Co-authored-by: Michael <45568605+michael-siek@users.noreply.github.com>
Co-authored-by: Dylan Barrell
---
packages/webdriverjs/src/axe-injector.ts | 10 +++--
.../src/test/fixtures/frames/bar.html | 7 ++--
.../src/test/fixtures/frames/foo.html | 7 ++--
.../src/test/fixtures/frames/recursive.html | 10 -----
.../src/test/fixtures/iframes/bar.html | 10 +++++
.../src/test/fixtures/iframes/baz.html | 9 ++++
.../src/test/fixtures/iframes/foo.html | 10 +++++
.../test/fixtures/inner-configure-frame.html | 6 +++
.../src/test/fixtures/multiple-frames.html | 16 -------
.../src/test/fixtures/nested-frames.html | 8 ++--
.../src/test/fixtures/nested-iframes.html | 11 +++++
.../test/fixtures/outer-configure-frame.html | 6 +--
.../test/fixtures/outer-configure-iframe.html | 9 ++++
.../src/test/fixtures/recursive-frames.html | 12 ------
packages/webdriverjs/src/test/test.ts | 42 +++++++++++++++++--
15 files changed, 113 insertions(+), 60 deletions(-)
delete mode 100644 packages/webdriverjs/src/test/fixtures/frames/recursive.html
create mode 100644 packages/webdriverjs/src/test/fixtures/iframes/bar.html
create mode 100644 packages/webdriverjs/src/test/fixtures/iframes/baz.html
create mode 100644 packages/webdriverjs/src/test/fixtures/iframes/foo.html
create mode 100644 packages/webdriverjs/src/test/fixtures/inner-configure-frame.html
delete mode 100644 packages/webdriverjs/src/test/fixtures/multiple-frames.html
create mode 100644 packages/webdriverjs/src/test/fixtures/nested-iframes.html
create mode 100644 packages/webdriverjs/src/test/fixtures/outer-configure-iframe.html
delete mode 100644 packages/webdriverjs/src/test/fixtures/recursive-frames.html
diff --git a/packages/webdriverjs/src/axe-injector.ts b/packages/webdriverjs/src/axe-injector.ts
index 390521db..9c2d7b54 100644
--- a/packages/webdriverjs/src/axe-injector.ts
+++ b/packages/webdriverjs/src/axe-injector.ts
@@ -139,7 +139,9 @@ export default class AxeInjector {
await this.driver.executeScript(this.script);
- const frames = await this.driver.findElements({ tagName: 'iframe' });
+ const ifs = await this.driver.findElements({ tagName: 'iframe' });
+ const fs = await this.driver.findElements({ tagName: 'frame' });
+ const frames = ifs.concat(fs);
for (const childFrames of frames) {
framePath.push(childFrames);
@@ -171,8 +173,10 @@ export default class AxeInjector {
// XXX: if this `executeScript` fails, we *want* to error, as we cannot run axe-core.
await this.driver.executeScript(this.script);
- // Get all of