[英]Handling new window in Internet Explorer using selenium webdriver
[英]Unable to switch focus to newtab/window in Internet Explorer using Selenium Webdriver
這里的問題是,我無法同時將焦點集中在新的標簽頁/窗口上,而是將焦點始終放在第一個標簽頁/窗口上。 請幫忙。
driver=new InternetExplorerDriver();
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
//driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"n");
for (String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
driver.get("https://google.com/");
IE驅動程序不支持窗口中選項卡的枚舉。 此外,WebDriver通常不支持自動化“手動”打開的選項卡,例如使用Control+t
打開的選項卡。 特定的驅動程序可能支持該功能,但這不是API合同的全球支持部分。
用戶嘗試“手動打開一個新標簽頁,切換到該標簽頁並使其自動化”的絕大多數情況下,用例並未得到充分考慮。 由於您拒絕說明為什么要執行此操作(而不是在新窗口中啟動新的驅動程序實例),因此無法推測您應該采取什么措施。
滿足您要求的最簡單方法是遵循以下原則:
打開標簽頁后,嘗試使用此方法 ,使用Java機械手對其進行切換。 以下代碼使用解決您問題的相同原理。
ArrayList<String> tabs2 = new ArrayList<String>(driver.getWindowHandles());
System.out.println(tabs2.size());
for (int i = tabs2.size()-1; i>=0; i--) {
Thread.sleep(2000);
driver.switchTo().window(tabs2.get(i));
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_CONTROL);
System.out.println(driver.getTitle() + "i: " + i);
driver.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.