diff --git a/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java b/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java index 604764f0b99..43c70347f44 100644 --- a/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java +++ b/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java @@ -18,10 +18,15 @@ package dev.selenium.interactions; import dev.selenium.BaseTest; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.openqa.selenium.Alert; +import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -33,6 +38,163 @@ public class AlertsTest extends BaseTest { + @BeforeEach + public void createSession() { + driver = new ChromeDriver(); + wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + } + + @AfterEach + public void endSession() { + driver.quit(); + } + + @Test + public void alertInformationTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + + driver.findElement(By.id("alert")).click(); + + wait.until(ExpectedConditions.alertIsPresent()); + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("cheese", alert.getText()); + alert.accept(); + + } + + @Test + public void alertEmptyInformationTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + driver.findElement(By.id("empty-alert")).click(); + + + wait.until(ExpectedConditions.alertIsPresent()); + + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("", alert.getText()); + alert.accept(); + + } + + @Test + public void promptDisplayAndInputTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + driver.findElement(By.id("prompt")).click(); + + //Wait for the alert to be displayed and store it in a variable + wait.until(ExpectedConditions.alertIsPresent()); + + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("Enter something", alert.getText()); + + alert.sendKeys("Selenium"); + alert.accept(); + + } + + @Test + public void promptDefaultInputTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + + driver.findElement(By.id("prompt-with-default")).click(); + + wait.until(ExpectedConditions.alertIsPresent()); + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("Enter something", alert.getText()); + alert.accept(); + } + + @Test + public void multiplePromptInputsTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + driver.findElement(By.id("double-prompt")).click(); + + wait.until(ExpectedConditions.alertIsPresent()); + + Alert alert1 = driver.switchTo().alert(); + Assertions.assertEquals("First", alert1.getText()); + + alert1.sendKeys("first"); + alert1.accept(); + + + Alert alert2 = driver.switchTo().alert(); + Assertions.assertEquals("Second", alert2.getText()); + alert2.sendKeys("second"); + alert2.accept(); + + } + + @Test + public void slowAlertTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + driver.findElement(By.id("slow-alert")).click(); + + wait.until(ExpectedConditions.alertIsPresent()); + + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("Slow", alert.getText()); + + alert.accept(); + + } + + + @Test + public void confirmationAlertTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + + driver.findElement(By.id("confirm")).click(); + + wait.until(ExpectedConditions.alertIsPresent()); + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("Are you sure?", alert.getText()); + + alert.accept(); + Assertions.assertTrue(driver.getCurrentUrl().endsWith("simpleTest.html")); + + } + + + @Test + public void iframeAlertTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + WebElement iframe = driver.findElement(By.name("iframeWithAlert")); + driver.switchTo().frame(iframe); + + driver.findElement(By.id("alertInFrame")).click(); + + + wait.until(ExpectedConditions.alertIsPresent()); + + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("framed cheese", alert.getText()); + + alert.accept(); + + } + + @Test + public void nestedIframeAlertTest() { + driver.get("https://www.selenium.dev/selenium/web/alerts.html#"); + WebElement iframe1 = driver.findElement(By.name("iframeWithIframe")); + driver.switchTo().frame(iframe1); + + WebElement iframe2 = driver.findElement(By.name("iframeWithAlert")); + driver.switchTo().frame(iframe2); + + driver.findElement(By.id("alertInFrame")).click(); + + + wait.until(ExpectedConditions.alertIsPresent()); + + Alert alert = driver.switchTo().alert(); + Assertions.assertEquals("framed cheese", alert.getText()); + + alert.accept(); + + } + @Test public void testForAlerts() { diff --git a/website_and_docs/content/documentation/webdriver/interactions/alerts.en.md b/website_and_docs/content/documentation/webdriver/interactions/alerts.en.md index e9db2e8fdb1..e0400b088c5 100644 --- a/website_and_docs/content/documentation/webdriver/interactions/alerts.en.md +++ b/website_and_docs/content/documentation/webdriver/interactions/alerts.en.md @@ -26,7 +26,7 @@ alerts. {{< tabpane langEqualsHeader=true >}} {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L45-L49" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L36-L41" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -76,8 +76,8 @@ a sample confirm. This example also shows a different approach to storing an alert: {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L55-L57" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L131-L138" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -134,9 +134,9 @@ text. Pressing the cancel button will not submit any text. See a sample prompt. -{{< tabpane langEqualsHeader=true >}} +{{< tabpane langEqualsHeader=true text=true >}} {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L62-L65" >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L79-L84" >}} {{< /tab >}} {{< tab header="Python" text=true >}} diff --git a/website_and_docs/content/documentation/webdriver/interactions/alerts.ja.md b/website_and_docs/content/documentation/webdriver/interactions/alerts.ja.md index 19adbf3a3da..c631f559f10 100644 --- a/website_and_docs/content/documentation/webdriver/interactions/alerts.ja.md +++ b/website_and_docs/content/documentation/webdriver/interactions/alerts.ja.md @@ -21,8 +21,8 @@ WebDriverは、JavaScriptが提供する3種類のネイティブポップアッ WebDriverはポップアップからテキストを取得し、これらのアラートを受け入れるか、または閉じることができます。 {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L45-L49" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L36-L41" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -71,8 +71,8 @@ alert.accept() この例は、アラートを保存する別の方法も示しています。 {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L55-L57" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L131-L138" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -128,8 +128,8 @@ alert.dismiss() サンプルプロンプトを参照してください。 {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L62-L65" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L79-L84" >}} {{< /tab >}} {{< tab header="Python" text=true >}} diff --git a/website_and_docs/content/documentation/webdriver/interactions/alerts.pt-br.md b/website_and_docs/content/documentation/webdriver/interactions/alerts.pt-br.md index 9ad51021231..cd0a07cc145 100644 --- a/website_and_docs/content/documentation/webdriver/interactions/alerts.pt-br.md +++ b/website_and_docs/content/documentation/webdriver/interactions/alerts.pt-br.md @@ -25,8 +25,8 @@ O WebDriver pode obter o texto do pop-up e aceitar ou dispensar esses alertas. {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L45-L49" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L36-L41" >}} {{< /tab >}} {{< tab header="Python" text=true >}} {{< gh-codeblock path="/examples/python/tests/interactions/test_alerts.py#L12-L18" >}} @@ -62,8 +62,8 @@ uma amostra de confirmação . Este exemplo também mostra uma abordagem diferente para armazenar um alerta: {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L55-L57" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L131-L138" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -121,8 +121,8 @@ Veja um exemplo de prompt . {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L62-L65" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L79-L84" >}} {{< /tab >}} {{< tab header="Python" text=true >}} diff --git a/website_and_docs/content/documentation/webdriver/interactions/alerts.zh-cn.md b/website_and_docs/content/documentation/webdriver/interactions/alerts.zh-cn.md index 0b8b7461677..7a5a7a8a667 100644 --- a/website_and_docs/content/documentation/webdriver/interactions/alerts.zh-cn.md +++ b/website_and_docs/content/documentation/webdriver/interactions/alerts.zh-cn.md @@ -18,8 +18,8 @@ WebDriver提供了一个API, 用于处理JavaScript提供的三种类型的原 WebDriver可以从弹窗获取文本并接受或关闭这些警告. {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L45-L49" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L36-L41" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -67,8 +67,8 @@ alert.accept() 此示例还呈现了警告的另一种实现: {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L55-L57" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L131-L138" >}} {{< /tab >}} {{< tab header="Python" text=true >}} @@ -123,8 +123,8 @@ alert.dismiss() {{< tabpane langEqualsHeader=true >}} - {{< tab header="Java" text=true >}} -{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L62-L65" >}} +{{< tab header="Java" text=true >}} +{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java#L79-L84" >}} {{< /tab >}} {{< tab header="Python" text=true >}}