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

处理网页对话框窗口下拉使用Selenium网络驱动程序和Java

曹华荣
2023-03-14

我正在使用Selenium WebDriver和Java实现网站的自动化,但我陷入了这样一种情况:点击一个按钮,就会打开一个新的网页对话框,在该网页对话框中,我会执行输入值/从下拉列表中选择等操作。

问题是我无法切换到该网页对话框,甚至F12窗口不能在该网页对话框上工作。这个网站只在IE上工作。请帮帮我。

    driver.findElement(By.id("buttonOK")).click(); //operation on main browser
    Thread.sleep(3000);
    driver.switchTo().activeElement();  // This didn't switch to webpage dialog

     for(String winHandle : driver.getWindowHandles()){  // this code also didn't switchTo webpage dialog
            driver.switchTo().window(winHandle);
        }

    driver.findElement(By.name("textDataValue")).sendKeys("test"); //operation on webpage dialog

屏幕截图:在此处输入图像描述

共有1个答案

公西承
2023-03-14

我认为当前for循环代码只是在所有打开的窗口之间切换,但是您希望切换到特定的打开窗口。

我建议每一个循环迭代都要寻找第一个循环。标记名(“title”)元素并提取title元素的文本。这应该与窗口顶部栏中的文本相对应
然后,对于切换到的每个窗口,将获取的“标题”文本与对话框窗口顶部栏中的文本(“添加/修改地址--网页对话框”)进行比较。如果它们匹配,那么你就可以跳出for循环,希望Selenium能专注于这个对话框窗口。

 类似资料:
  • 问题内容: 我正在尝试使用switch来发出警报并执行操作,但是我遇到了错误。 现在真正的问题是当我将下面的代码放入try中时,catch可以正常工作。我的意思是它可以完美地处理警报。但是当我不经尝试使用相同代码时,捕获代码将引发以下异常 请在下面找到错误 问题答案: 这个想法是当您处理警报时,您必须先检查警报是否存在。我会使用这种方法: 在这里您可以获得详细信息,也不要忘记逐步调试以了解出现/不

  • 如何等待硒Web驱动程序中的子窗口 当我点击提交按钮,它会把我带到子窗口,我断言URL,但有时子窗口需要时间来目前使用thread.sleep(4000),但这是错误的方式。

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

  • 我无法从以下网页中读取电子邮件id: 网址:https://targetstudy.com/university/2/acharya-ng-ranga-agricultural-university/ 这是我的代码

  • 我正在抓取这个网页的用户名,在滚动后加载用户 指向页面的Url:“http://www.quora.com/Kevin-Rose/followers" 我知道页面上的用户数(本例中的用户数为43812),如何滚动页面直到加载所有用户?我在互联网上搜索过同样的代码,在任何地方我都能找到几乎相同的代码行: driver.execute_script("window.scroll至(0)") 如何确定垂

  • 我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic