如何通过 Selenium WebDriver (Java API) 在网页视图中查找网页元素?

How to find web elements in web-view via Selenium WebDriver (Java API)?

我正在使用 Selenium WebDriver (Java API) 来测试基于 electron/chromium 的应用程序。此应用程序的登录页面有一个 web-view (<webview>...</webview>),可在其中加载辅助网页。我在下面附上了类似登录页面的屏幕截图及其 DOM 供您参考。正如您在屏幕截图中看到的,web-view 在此示例中加载了辅助网页 https://www.google.ca/。我需要与此辅助网页中的 Web 元素进行交互。假设我正在尝试找到 Google Search 按钮并在此示例中单击它,如下所示。

WebElement googleSearchButton = driver.findElement(By.xpath("//input[@value='Google Search']"));
googleSearchButton.click();

不幸的是,我似乎无法通过 driver.findElement(By) 在二级网页中找到任何网页元素。例如,上面提到的代码片段的第一行抛出一个 NoSuchElementException.

有谁知道如何通过 Selenium WebDriver (Java API)web-view 中查找网络元素?

提前致谢!

通过阅读 WebView 文档,我发现首先不建议使用 webview。

现在开始回答你的问题。您可以阅读此文档并使用 JavascriptExecutor 使用 webview 的 api.

与 webview 交互

https://github.com/electron/electron/issues/2285

在控制台选项卡中打开 DevTools 执行 document.querySelector('webview').openDevTools(); 它将为您打开新的 window 和所需的 HTML.

或者如果使用 jQuery $('webview').openDevTools();

也许只需将 'webview' 更改为您的定位器,因为我的页面上只有一个 webview

干杯。