0

单击 MS Edge 中的文件资源管理器“浏览”按钮后,Selenium 会离开控制权。这在 Chrome 和 Firefox 中运行良好,但绝对阻止在代码中运行下一步。我通过所有可能的方式尝试了代码,下面的代码可以点击浏览按钮,但是在这一步之后硒离开了控制,因为文件资源管理器窗口打开了。这是 Selenium 或 MS Edge 驱动程序问题吗?

脚步:

1. Open ajax web application through MS Edge (works)
2. Click to browse button through web driver core or java script method (works)
3. Selenium gone, leaves control till we close file explorer button (doesn't work) - this works fine in GC and FF.
4 (Blocked). Send key to type file name or implement AutoIt script (works)
5 (Blocked). Click to open button via AutoIt script (works)
6 (Blocked). File attached fine (works)

工作代码:

driver.findElement(By.id("browseID")).click();

WebElement we = null;
((JavascriptExecutor)ClientSessionFactory.session().webDriver()).executeScript("document.getElementsByName('browseName')[0].click()", we);

环境:

Selenium version - Latest 3.6.0
Browser - MS Edge
MS Edge Driver - Latest Release 15063
Application type - Ajax web

在此处输入图像描述

这实际上阻止了附件功能,如果 selenium 能解决这个问题,那就太好了。到目前为止,我只看到 Autoit 是作为第 3 方软件的解决方案,但是为应用程序中的每个浏览按钮添加单独的脚本非常繁琐,由于操作系统对话框的出现,任何由 selenium 块编写的代码。

4

2 回答 2

0

同样的问题。为了修复它,我使用 WinWaitActive() 作为第一个指令来拉皮条 AutoIt 脚本,以等待窗口处于活动状态。在打开文件上传之前,我在并行进程(python 中的 subprocess.Popen)中运行脚本

于 2019-12-12T13:19:29.210 回答
0

我遇到了同样的问题。一种解决方案是使用 Auto-It 脚本(例如)来操作“浏览”窗口。在单击“浏览”按钮之前,执行 Auto-It 脚本并在开始时设置“睡眠”命令等待 1-2 秒。现在您可以单击“浏览”按钮。对我来说很好。

于 2018-04-01T07:42:42.157 回答