2013-07-10 32 views
0

我在Windows 7和IE9上使用Selenium 2.32,IEDriverServer 2.32,Eclipse,Java JDK 1.6.0_43。我用它來啓動驅動程序的代碼是IE 9 getWindowHandles - 不識別新的瀏覽器窗口

File file = new File("IEDriverServer.exe"); 
System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); 
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); 
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
WebDriver driver = new InternetExplorerDriver(ieCapabilities); 

在IE9中,當我打開一個新的瀏覽器,在driver.getWindowHandles()返回只有一個瀏覽器(父瀏覽器)和新的瀏覽器點擊一個鏈接從未被識別。當我在IE 8中使用相同的代碼時,它可以工作,並識別新的瀏覽器。

由於公司政策,IE9中不同區域的'安全'設置不同。對於兩個區域,「啓用保護模式」已啓用,而在其他區域中,該模式未啓用。這是問題的原因嗎?請建議。

+0

它是一個通常的。點擊元素後,我等待了8秒鐘,新瀏覽器在8秒鐘內完成加載,然後我使用了System.out.println(driver.getWindowHandles()。Size()); 上述代碼返回1而不是2. – user2356679

+0

保護模式設置很可能是問題所在。你有沒有(或者更重要的是,那些不讓你在你的機器上設置這個基本無害設置的近視控制怪胎)閱讀[明確的解釋](http://jimevansmusic.blogspot.com/2012/08/youre描述_why_這些變化是必要的嗎? – JimEvans

回答

0

步驟如下:

  1. 「啓用保護模式」,應檢查所有區域和 安全級別應設置爲「中」。
  2. 給一些時間使用Thread.sleep()加載頁面。現在您將爲 獲取getWindowHandles()方法的正確值。