java - 无法切换到主窗口内的浏览器窗口。(Selenium Webdriver)

标签 java javascript selenium contextmenu

我尝试使用窗口句柄、警报,也尝试不切换窗口。 但这些想法都不适合我。 一旦我选择该元素,就会打开一个新的浏览器子窗口。现在控件位于新的子窗口上,我根本无法检测到。需要帮忙。 在打开此子窗口的操作之前,我可以打印到控制台,但之后不能。 我也尝试过 JavaScriptExecutor 但它也不起作用。

我正在放置窗口的屏幕截图,如下所示。 您可以看到子窗口是新的,但它是在主窗口内打开的,并且控件完全在其上。

This is how it looks

最佳答案

在这里,我使用Robot类与对话框进行交互。无需切换窗口。尝试下面的代码。 Hello 是要输入的数据:

    StringSelection data_to_enter= new StringSelection("Hello");
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(data_to_enter, null);

    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

关于java - 无法切换到主窗口内的浏览器窗口。(Selenium Webdriver),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27064096/

相关文章:

linux - phantomjs - 巨大的内存使用

python - Chrome Webdriver 无法完成产品结帐自动化

java - JSP for 循环根据记录数插入页脚

javascript - 为什么这个 JQuery 仅在我 console.log 一个错误变量时才起作用?

python - Selenium:从日历中选择日期

javascript - 在单击单独的 DIV 时通过 Javascript 重新加载 DIV 的图像和类。

javascript - 如何在 Emscripten 中返回未知大小的数组?

java - 获取延迟加载的@ManyToOne 实体的@Id 始终返回 null

java - 支持语法高亮、链接和在线拼写检查的文本编辑器小部件

java - c3p0 在 awaitAvailable 中挂起并 hibernate