Javascript 使用selenium在弹出窗口中按Enter键

Javascript 使用selenium在弹出窗口中按Enter键,javascript,selenium,selenium-webdriver,drop-down-menu,Javascript,Selenium,Selenium Webdriver,Drop Down Menu,我正在使用Selenium测试我的web应用程序 在这里,我想单击enter按钮来选择列表框中的值。我也尝试过使用javascript、sendkeys和Robot的所有方法。在正常窗口中一切正常,但当弹出窗口出现时,此时不适用于此 有人面对过这个问题吗 请帮帮我 感谢您的帮助。您需要先切换弹出窗口,然后才能执行操作 Alert alertOK = driver.switchTo().alert(); alertOK.accept(); 如果弹出框不是确认框,则需要切换并执行单击操作 driv

我正在使用Selenium测试我的web应用程序

在这里,我想单击enter按钮来选择列表框中的值。我也尝试过使用javascript、sendkeys和Robot的所有方法。在正常窗口中一切正常,但当弹出窗口出现时,此时不适用于此

有人面对过这个问题吗

请帮帮我


感谢您的帮助。

您需要先切换弹出窗口,然后才能执行操作

Alert alertOK = driver.switchTo().alert();
alertOK.accept();
如果弹出框不是确认框,则需要切换并执行单击操作

driver.switchTo().alert();
element.click();
或者,如果它是应用程序弹出窗口,那么您可以尝试下面的代码

要切换到弹出窗口,需要使用
getWindowHandles()
并遍历它们

在代码中,您使用的是
getWindowHandle()
,它将为您提供父窗口本身

String parentWindowHandler = driver.getWindowHandle(); // Store your parent window
String subWindowHandler = null;

Set<String> handles = driver.getWindowHandles(); // get all window handles
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
    subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler); // switch to popup window

// Now you are in the popup window, perform necessary actions here

driver.switchTo().window(parentWindowHandler);  // switch back to parent window
String parentWindowHandler=driver.getWindowHandle();//存储父窗口
字符串子窗口处理程序=null;
设置句柄=驱动程序。getWindowHandles();//获取所有窗口句柄
迭代器迭代器=handles.Iterator();
while(iterator.hasNext()){
subWindowHandler=iterator.next();
}
driver.switchTo().window(子WindowHandler);//切换到弹出窗口
//现在您在弹出窗口中,在此处执行必要的操作
driver.switchTo().window(parentWindowHandler);//切换回父窗口

希望它能帮助您:)

尝试以下代码切换窗口:

WebDriver driver = new FirefoxDriver();
driver.get("http://demo.guru99.com/popup.php");
driver.manage().window().maximize();
driver.findElement(By.xpath("html/body/p/a")).click();

// return the parent window name as a String
String parentWindow=driver.getWindowHandle();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

// Pass a window handle to the other window
for(String childWindow: driver.getWindowHandles())
{
if(!childWindow.equals(parentWindow)){
System.out.println("child");
//switch to child window
driver.switchTo().window(childWindow);
//find an element and print text of it 
WebElement textLabel=driver.findElement(By.xpath("html/body/div[1]/h2"));
System.out.println(" text:  "+textLabel.getText());
driver.close();
}
}
System.out.println("Come to parent window");
/switch to Parent window
 driver.switchTo().window(parentWindow);
请尝试以下代码:

driver.switchTo().activeElement();

它对我来说也很好……

考虑分享你的代码块和相关的HTML。没问题,只要打开它,你就可以了,我很高兴它对我们uLet有效。