如何在Selenium中处理弹出的IFrame窗口

时间:2017-03-14 07:18:06

标签: java selenium frame

我是Slenium的新人。 enter image description here

我正在尝试处理弹出窗体。

当我点击New Button时,会打开这样的弹出窗体。 enter image description here

我通过alert(),弹出处理以及子浏览器处理来尝试处理。但没有得到解决方案。 请为此问题提出一些解决方案

2 个答案:

答案 0 :(得分:1)

如果是< iframe >然后,您需要将WebDriver切换到此框架才能使用它。以下是如何执行此操作的示例:

By locIframe = By.xpath("//iframe[@name='popup']");
driver.switchTo().frame(driver.findElement(locIframe));
// driver is an instance of RemoteWebDriver

Xpath定位器只是一个例子:你需要在这里自己编写。您还可以使用任何其他定位器来查找< iframe >页面源中的元素。

切换到iframe元素后,WebDriver会看到它的页面源代码,并能够使用它。

答案 1 :(得分:0)

我也面临类似的问题。在父窗口中单击-bash: /etc/profile.d/oraclejdk.sh: line 3: syntax error near unexpected token `(' -bash: /etc/profile.d/oraclejdk.sh: line 3: ` export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/KaliLinux.54290C8133FEE_1.1.9.0_x64__ey8k8hqnwqnmg:/mnt/c/windows/system32:/mnt/c/windows:/mnt/c/windows/System32/Wbem:/mnt/c/windows/System32/WindowsPowerShell/v1.0/:/mnt/c/windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/Intel/WiFi/bin/:/mnt/c/Program Files/Common Files/Intel/WirelessCommon/:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/PowerShell/6/:/mnt/c/Users/User/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/User/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Program Files/Bandizip/:/mnt/c/Program Files/Java/jdk-12.0.1/bin:/mnt/c/Users/User/AppData/Local/GitHubDesktop/bin:/usr/lib/jvm/oracle_jdk8/bin:/usr/lib/jvm/oracle_jdk8/db/bin:/usr/lib/jvm/oracle_jdk8/jre/bin' 按钮时,将显示一个iFrame弹出窗口,如下所示:

enter image description here

如前所述,您尝试使用alert()或弹出式处理以及“子浏览器处理”进行处理。但是它们都不起作用,因为它是iFrame弹出窗口。因此,您需要将WebDriver切换到此框架才能使用它。 就我而言,我确实使用了以下代码:

EDIT

要找到框架的索引,可以使用Selenium IDE。