当前位置: 首页 > 知识库问答 >
问题:

多个IE web驱动程序:单击打开弹出窗口的链接/按钮时会话丢失

楚方伟
2023-03-14


我一起运行多(2)个IE Web驱动程序。(用于用户端和管理员端测试)当InternetExplorer WebDriver单击打开模式弹出窗口的链接/按钮时,登录页面在新窗口上打开(异常)。


当ie webDrive弹出窗口时,我可以看到浏览器应该加载的正确地址(在URL行中),但立即更改为登录url,并需要输入用户名和密码。


我在这个链接中发现了同样的问题,我在那里提出了解决方案,但我仍然没有解决问题,我得到了一个入口窗口,而不是预期的窗口。查看此屏幕截图

  • 我的IE版本是11。
  • 我的硒。WebDriver3.141.0.0
  • 我的ie web驱动程序是IEDriverServer_x64_3.141.5


我的InternetExplorerOptions:

 private static InternetExplorerOptions ieOptions = new InternetExplorerOptions
        {
            EnsureCleanSession = true ,
            EnableNativeEvents = true ,
            RequireWindowFocus = true ,
            EnablePersistentHover = true ,
            ForceCreateProcessApi = true ,
            BrowserCommandLineArguments = "-framemerging -private"
        };

我添加了注册表项:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FrameMerging\(DWORD)00000000

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\TabProcGrowth\(DWORD)00000000

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE\iexplorer.exe\(DWORD)00000000

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE\iexplorer.exe\(DWORD)00000000


已编辑:

通过Deepak MSFT参考资料,我了解到该问题是由多个IE web驱动程序实例引起的。

我还试图通过向代码中添加confirmcleansion=true选项,以及通过从命令行运行以下语句(在运行测试之前)手动杀死IE驱动程序;

taskkill / F / IM iexplore.exe / T
taskkill / F / IM IEDriverServer.exe / T


但是,一旦我设置了两个IE web驱动程序一起工作,它就没有任何帮助了。

(当我试图只在一个驱动程序上运行测试时-它工作得很好!)


我将不胜感激在解决问题的帮助!

共有2个答案

姚自强
2023-03-14

我的解决方案:

将测试用例分为两个测试:


第一次测试-

对第一个站点使用IE web驱动程序(在我的情况下是管理端),对第二个站点(在我的情况下是管理端)并行使用另一个web驱动程序(这不会导致像Chrome web驱动程序那样的问题)


还有第二次测试-

对第一个站点使用上面的另一个web驱动程序,对第二个站点并行使用IE web驱动程序。


所以我介绍了两个站点的IE测试。

汪凌
2023-03-14

这个问题是由于IE本身的一个怪癖,以及驱动程序如何为浏览器创建弹出窗口。

解决方法是确保没有iExplorer。启动与驱动程序的会话时运行的exe进程。

参考文献:

(1)点击打开窗口的链接时丢失会话cookiewindow.open()

(2)点击打开窗口的链接时丢失会话cookiewindow.open()

 类似资料:
  • 我有问题,点击链接从弹出窗口。单击按钮后,弹出窗口显示约3秒: 我正试图通过单击“取消” 和 但是链接没有被点击。我不知道如何断言工作在这个弹出

  • 我无法使用Selenium在此弹出消息上写入。在这种情况下,请随时帮助我。我的密码是:- driver.findElement(by.xpath(“html/body/div[2]/header/div/nav/div/a”)).click(); 错误:-线程“main”org.openqa.selenium.NosuChelementException中出现异常:找不到元素:*[name='mo

  • 问题内容: 我有一个netbeans Java应用程序,该应用程序在启动时应显示JFrame(StartUpWindow类扩展为JFrame类),并带有一些选项,然后用户单击一个按钮,然后关闭JFrame并打开一个新的(MainWindow类)。 因此,我该如何正确执行此操作。我显然在StartupWindow中的按钮上设置了一个单击处理程序,但是我应该在该处理程序中添加什么以便关闭StartUp

  • 作为我程序的一部分,我需要有一个按钮,当用户单击它时,它会打开一个新窗口。 嗯,我想我应该有一个类来创建框架并按按钮调用它。但我不知道该怎么开始。我刚刚在程序中找到了我的按钮,但它不起作用。有人能告诉我怎么做吗?或对其进行编码。

  • 我正在编写一个包含许多按钮的程序,当我单击其中一个按钮时,我希望它打开一个包含一些txt文件信息的JTextArea。我试图将JTextArea添加到按钮中,但它没有打开任何东西。我是Java新手,所以我不知道这是否是正确的方法。 我在GUI中定义了按钮和JTextArea 这是我在public void actionPerformed(ActionEvent e)中编写的代码