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

Selenium webdriver窗口处理

李法
2023-03-14

我无法在窗口之间切换。打开弹出窗口时光标被击中。无法再前进了。测试案例:打开URL:http://voltaerp.cloudapp.net/VomsDemoV2/点击查询选项卡,然后点击子菜单项“国外查询”。这将把用户重定向到国外查询页面。现在单击绿色加号从弹出菜单中选择一个项目。我到现在都很好。一旦窗口打开,代码就会被卡住。无法读取弹出窗口的ID或将驱动程序切换到弹出窗口,以便我可以选择任何项目。请帮帮忙

这是我用的代码

    Public void main (string[]args)

    {             
         WebDriver driver=new FirefoxDriver();

         driver.get(“voltaerp.cloudapp.net/VomsDemoV2/");

         driver.findElement(By.id("txtUser")).clear();

         driver.findElement(By.id("txtUser")).sendKeys("testmail_b@yahoo.com");

         Thread.sleep(500);

         driver.findElement(By.id("txtPass")).clear();

         driver.findElement(By.id("txtPass")).sendKeys("123456");

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

         driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

         WebElement parentlink= driver.findElement(By.id("ctl00_NavigationMenun3"));
         Actions hover= new Actions(driver);
         hover.moveToElement(parentlink).build().perform();


         WebElement sublink= driver.findElement(By.linkText("FOREIGN ENQUIRY"));
         Actions Fe= new Actions(driver);
         Fe.moveToElement(sublink).click().build().perform();

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

//无法进一步移动。当我调试代码时,cursur不会进入下一条语句。

         Set<String> WindowIds = driver.getWindowHandles();
         Iterator<String> itr = WindowIds.iterator();
         String mainwindow = itr.next();
         String Popup = itr.next();

         driver.switchTo().window(Popup);

         driver.findElement(By.xpath(".//*[@id='txtItmDscrip']")).sendKeys("TESTITEM");

    }

共有1个答案

宰父志新
2023-03-14

无法检查您的方案,因为应用程序需要身份验证。但通常弹出窗口不是一个窗口,只是一个警告。尝试Alert类来处理它。

Alert alert = driver.switchTo().alert();

有关更多详细信息,请参阅此处。在 Java 文档页面上,单击 LHS 框架上的警报链接。

 类似资料:
  • 来自火花流背景-掌握Kafka流。 我有一个简单的Spark流媒体应用程序, 并返回该分钟内每个用户的最新事件 示例事件类似于 我感兴趣的是这将如何在Kafka流中工作,因为似乎每个事件都有一个输出--当我的用例是减少流量时。 从我到目前为止的阅读来看,这似乎不是直接的,您将不得不使用处理器API。 理想情况下,我希望使用DSL而不是处理器API,因为我刚刚开始研究Kafka流,但似乎我必须使用处

  • 问题内容: 我需要使用Java或基于Javascript的自动化解决方案来操纵IE浏览器的“弹出窗口和下载对话框”。 我尝试了selenium2,但是它不能正常工作,因此其他建议也一样。实际上selenium2没有提供警报/下载对话框的正确处理,因此我正在考虑使用其他一些javascript / java解决方案。 使用“下载对话框”:我需要将下载的文件保存到特定位置。使用“警报对话框”:我需要检

  • 问题内容: 我遇到的一种情况是,单击链接网页会打开一个弹出窗口。并且在弹出窗口打开之后,焦点位于弹出窗口中,并且主窗口被禁用。而且我无法将控件转移到弹出窗口。请看下面的代码。 我无法将控件从父窗口转移到弹出窗口。我知道以下命令。 但是它没有太大帮助。请帮我。 问题答案: 当我需要使用以下弹出窗口,关闭它并返回主窗口时,这是我使用的代码。当然,出于此答案的目的已对其进行了简化。它维护原始窗口(主窗口

  • 问题内容: 我正在试验Firefox的WebDriver,请问是否可以处理“下载”窗口(接受或拒绝传入的下载请求)? 例如,一段简单的代码: 我已经对此进行了一些尝试,但是还没有找到解决方案。我真的很感谢任何提示。 非常感谢,-V 问题答案: 一种解决方案是更改WebDriver的Firefox配置文件,以将某些MIME类型自动下载到给定目录。 我不确定如何(或是否)在Python中公开此信息,但

  • 问题内容: 我有这个网页,我想使其自动化。这是应用程序的步骤和功能。 使用Selenium启动应用程序 单击某些按钮后,将在主页上弹出一个框架 我可以通过硒Web驱动程序在框架上执行操作 但同一框架中有一个日历图标。 单击日历图标后,将弹出一个带有日历和“确定”按钮的弹出窗口。 我可以在弹出窗口中选择日期,然后单击“确定”按钮,弹出窗口会自动关闭。 现在,我想再次切换到FRame来执行进一步的操作

  • 我有这样的场景,当点击一个按钮时,它打开了一个基于PDF文件的窗口: 我使用的是Gecko驱动程序版本-21.0Firefox版本-61.0.1 Selenium独立服务器-3.13 我无法切换到基于PDF文件的窗口获取错误: 我想用最新的壁虎驱动程序-21.0来处理它