【问题标题】:Browser focus when multiple child browser are opened in selenium在 selenium 中打开多个子浏览器时的浏览器焦点
【发布时间】:2017-06-29 15:57:05
【问题描述】:

场景:我们使用 selenium 打开了大约 5 个浏览器,即 b1、b2、b3、b4、b5。这些所有浏览器都有活动会话。在使用诸如 b4 之类的浏览器之一时,该浏览器由于其他浏览器而被隐藏或偏离焦点。我们如何使 b4 浏览器成为焦点或激活,以便我们运行 autoIT 脚本或 scikuli 脚本。

由于b4浏览器落后于其他浏览器,因此涉及到scikuli或autoIT的这一步失败。

欢迎任何建议或建议。

我们尝试使用以下解决方案:

option 1: new Actions(driver).moveToElement(element).click().perform();
option 2: JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.getElementById('elementid').focus();");

以上选项均无效。我们尝试使用 ROBOT 类,但没有任何效果。

【问题讨论】:

  • 是否所有的“浏览器”都在一个 selenium 会话中?如果是这样,它们实际上是硒会话中的窗口。您必须先切换到窗口,然后搜索元素。不确定我是否足够了解您的情况。
  • 没有。在同一执行中打开了不同的浏览器会话。每个浏览器都有不同的应用程序。

标签: javascript selenium selenium-webdriver


【解决方案1】:

在运行 sikuli 脚本之前,您必须将焦点移至 b4 浏览器窗口。之后,您可以运行您的 Sikuli 脚本。

var current_active_window = driver.getWindowHandle();
var child_windows = driver.getWindowHandles();

driver.switchTo().window(child_windows[3]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2021-08-28
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多