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

使用selenium webdriver在windows之间切换时面临的问题

谭飞掣
2023-03-14

我在使用selenium web驱动程序在两个窗口之间切换时遇到了问题。

我正在使用selenium WebDriver实现网页的自动化。

在父窗口中,我需要单击一个按钮,它将打开一个新窗口。我需要在新窗口上填充一些数据,然后单击保存按钮。单击保存按钮后,该窗口将自动关闭,并重定向到父窗口,父窗口将被刷新以显示在新窗口上添加的数据。但在重定向期间,它无法切换回父窗口,并抛出安全违规错误。

我正在使用下面的代码在窗口之间切换

 public void switchwindow(){
    try {
    String winHandleBefore = getDriver().getWindowHandle();
    for(String winHandle : getDriver().getWindowHandles()){
        getDriver().switchTo().window(winHandle);

    }

    }catch(Exception e){
    }
 }

请在这个问题上帮助我。

共有1个答案

盛建德
2023-03-14

我认为正确的程序应该是:

  • 在父窗口上,调用Dirver.GetWinDowHandle()保存ParentWinDowHandle
  • 在父窗口上,单击按钮打开新窗口
  • 切换到新窗口,并填写数据
  • 在“新窗口”上,单击“保存”按钮并关闭新窗口
  • Driver.SwitchTo().Window(parentWindowHandle)然后执行以下操作...

我不确定“安全违规错误”是什么样子的,如果你能把它和其他异常贴出来会有帮助的,谢谢!

 类似资料:
  • 我有一个带有底栏的main_activity。我正在使用这个底栏在片段之间导航。然而,有一个片段不能通过底部栏直接导航。它必须通过MapView和从片段中访问。然而,每当我使用InfoWindow时,该应用程序就会崩溃。这是我的代码 异常:main process:com.teslaqubitsins.fasih.teslahcm,pid:2573 java.lang.nullpointerexc

  • 我正在做一些项目,其中一些使用不同的JDK。在JDK版本之间切换不舒服。所以我想知道是否有什么简单的方法来更改它? 我发现了2种方法,应该可以解决这个问题,但它不起作用。 第一个解决方案是创建这样的bat文件: 在运行了这个蝙蝠之后,我看到了正确版本的Java。但是当我关闭这个CMD并打开一个新的并输入“java版本”时,它说我仍然有1.8.0_25。所以它不起作用。 我找到的第二个解决方案是这个

  • 我的web应用程序由各种面板和仪表板组成,仪表板上有访问每个面板的按钮。因此,每个按钮都是专用面板和主面板之间的切换。 例如,如果我们有3个面板,panel1是默认的一个,另外两个按钮用于在其他两个面板和默认面板之间切换: 应在面板1和面板2之间切换 应在面板1和面板3之间切换 我几乎已经实现了,但是我的代码显示了panel2和panel3重叠。 所以我想让按钮1负责在面板1和面板2之间切换。和按

  • 几天来,我一直在努力更新卡式布局中的JText field和Jbox数据。我创建了小演示来解释我的问题...当我点击“开始”按钮时,它应该显示另一个面板,它正在工作,但是当我回到主页时,我希望我的JText field和jbox从“世界”更新为“你好”,但这不起作用。任何帮助和建议将不胜感激。很抱歉代码缩进,我不知道为什么复制粘贴不能正常工作)。

  • 我正在使用Selenium和Java,我正在使用这段代码在Mozilla中的选项卡之间切换,但它打开了一个新窗口而不是新选项卡。如何解决这个问题,或者有没有另一种在选项卡之间切换的方法?

  • 我想做一个现代的图形用户界面,左边有标签,如图所示: 有什么想法,我如何让面板在不处理写入/设置的数据的情况下进行切换,例如进入文本字段、文本区域、复选框、滚动条等? 我本来想删除旧的一个面板,并添加另一个面板,但当我点击面板之前,我访问的控制数据将被重置,我认为它会闪烁。