2017-03-27 72 views
0

如何關閉我的iframe Fancybox並返回到selenium webdriver的父頁面?我使用iframe上傳圖片,我需要在父頁面上提交我的圖片。如何關閉我的iframe Fancybox並返回到selenium webdriver的父頁面?

WebElement browse_btn=driver.findElement(By.xpath(".//*[@id='myForm1']/input[2]")); 
browse_btn.sendKeys("C:\\Users\\user1\\Downloads\\test1.jpg"); 
WebElement upload_btn=driver.findElement(By.xpath(".//*[@id='myForm1']/input[3]")); 
upload_btn.click(); 
WebElement progress_bar=driver.findElement(By.xpath(".//*[@id='bar']")) ; 
WebDriverWait wait = new WebDriverWait(driver, 200); 
wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath(".//*[@id='percent']"), "100%")); 
Thread.sleep(5000); 
driver.switchTo().defaultContent(); 
+0

我沒有看到您的代碼的任何問題。您甚至不需要Thread.sleep(5000),因爲DOM已經存在。你得到的錯誤是什麼? – DebanjanB

+0

您的代碼在哪裏試圖關閉對話框?它應該是睡覺的地方。我不明白爲什麼你需要'defaultContent()'行......你沒有任何代碼將上下文切換到iframe中。我們還需要鏈接到該頁面或發佈的相關HTML。 – JeffC

+0

@Dev沒有錯誤,但iframe沒有關閉amd我無法訪問父頁面的元素 –

回答

-1

即使上傳完成後,爲什麼Thread.sleep(5000)?框架窗口是否自動關閉?
如果沒有,是否有關閉按鈕關閉框架?

不確定你的情況在這裏,你可以嘗試driver.switchTo().parentFrame();而不是driver.switchTo().defaultContent();。這可能工作。

+0

不,窗口沒有自動關閉。我刪除了thread.sleep()並嘗試了driver.switchTo.parentframe(); ,但是iframe不會切換到父窗口。 –

相關問題