2017-06-01 93 views
0

我有一種情況如下的Windows在處理硒webdriver的用java

1. Login to the application 
2. click on a button (say Buy) 
3. This will take me to a new window opened with a new URL automatically 
4. Perform actions in the new window 
5. Quit 

請請提供確切的代碼在這方面努力。我試圖與存在於其中沒有工作,我的網站使用的碼

+0

http://toolsqa.com/selenium-webdriver/switch-commands/ – Priya

+0

我希望上面的代碼應該適合你。讓您切換到子窗口並執行操作。另外它還有一個練習的例子,它給出了有關窗口之間切換的信息 – Priya

+0

請參閱https://stackoverflow.com/help/how-to-ask。至少你應該提及你採取了哪些步驟,但這些步驟對你來說並不奏效,而且這個錯誤是怎麼回事。只需複製和粘貼任何問題,不會讓你在任何地方,並會吸引倒票。 – demouser123

回答

0

您可以嘗試以下模式: -

Webdriver driver = new ChromeDriver(); 
    driver.get("URL of application"); 
    driver.findElement(By.id("username").sendKeys("user1"); 
    driver.findElement(By.id("password").sendKeys("pass1"); 
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); 
    driver.findElement(By.xPath("xpath of button").click(); 

//現在你可以切換到彈出並相應地接受或拒絕它

driver.switchTo().alert().accept(); 

    driver.quit(); 

如果您向SO社區提供應用程序的URL,那麼只能提供完整的代碼。

+0

我認爲你誤解了OP的問題,因爲警報不在這裏發揮作用。我想你可能也無法正確理解隱含的等待。隱式等待應在驅動程序初始化後定義,並且您需要三秒以上。您的前兩個findelement語句可能會失敗,因爲沒有定義隱式等待。 –

+0

@Bill,我非常清楚這個問題,因爲Meghasri的陳述是籠統的,所以我的回答是籠統的,所以她可以根據需要進一步加強。就隱含的等待時間而言,這只是一個例子,因爲我們不知道應用程序及其行爲,因此我只輸入了任意數字。對於前2個findelements,如果頁面刷新則需要等待,否則不需要等待。 – Deepak