在MS Edge中单击文件资源管理器“浏览”按钮后,Selenium将保持控制权。这在Chrome和Firefox中运行良好,但绝对阻止在代码中运行下一步。我通过所有可能的方式尝试了代码,下面的代码可以单击“浏览”按钮但是在此步骤之后selenium会保留控制权,因为文件浏览器窗口打开了。这是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是第三方软件的解决方案,但为应用程序中的每个浏览按钮添加单独的脚本非常繁琐,由于操作系统对话框外观,所以使用selenium块的任何代码。
答案 0 :(得分:0)
我遇到了同样的问题。一种解决方案可以是使用Auto-It脚本(例如)操纵“浏览”窗口。在单击“浏览”按钮之前,执行Auto-It脚本并在开头设置“sleep”命令等待1-2秒。现在您可以单击“浏览”按钮。对我来说很好。
答案 1 :(得分:0)
相同的问题。为了解决这个问题,我使用WinWaitActive()作为第一个指令来激活AutoIt脚本,直到窗口被激活为止。 在打开文件上传之前,我在并行进程(python中的subprocess.Popen)中运行脚本