extract and re-use
authorJochen Kemnade <jochen.kemnade@eddyson.de>
Thu, 2 Nov 2017 15:33:14 +0000 (16:33 +0100)
committerJochen Kemnade <jochen.kemnade@eddyson.de>
Fri, 3 Nov 2017 06:58:15 +0000 (07:58 +0100)
tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/AjaxGroovyTests.groovy
tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/FormTests.java
tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java

index 209281a..1b129ee 100644 (file)
@@ -12,7 +12,9 @@ class AjaxGroovyTests extends App1TestCase {
 
         openLinks "Ajax Radio Demo"
         webDriver.findElements(By.cssSelector('label')).find{it.text.contains('It')}.click()
-        webDriver.findElements(By.cssSelector('label')).find{it.text.contains('Temp')}.click()
+        def labelTemp = webDriver.findElements(By.cssSelector('label')).find{it.text.contains('Temp')}
+        scrollIntoView(labelTemp)
+        labelTemp.click()
 
         click SUBMIT
 
index b666012..54d96a2 100644 (file)
@@ -17,6 +17,7 @@ import java.util.Date;
 
 import org.apache.tapestry5.corelib.components.Form;
 import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.ui.ExpectedCondition;
 import org.openqa.selenium.support.ui.ExpectedConditions;
 import org.testng.annotations.Test;
@@ -451,7 +452,9 @@ public class FormTests extends App1TestCase
 
         assertTextPresent("Selected department: ACCOUNTING");
 
-        webDriver.findElements(By.cssSelector("label")).stream().filter(element-> element.getText().contains("Sales And Marketin")).findFirst().get().click();
+        WebElement salesAndMarketing = webDriver.findElements(By.cssSelector("label")).stream().filter(element-> element.getText().contains("Sales And Marketin")).findFirst().get();
+        scrollIntoView(salesAndMarketing);
+        salesAndMarketing.click();
 
         clickAndWait(update);
 
index f318733..313e4e5 100644 (file)
@@ -544,7 +544,7 @@ public abstract class SeleniumTestCase extends Assert implements Selenium
         WebElement element = webDriver.findElement(convertLocator(locator));
         if (!element.isSelected())
         {
-            ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(true);", element);
+            scrollIntoView(element);
             element.click();
         }
     }
@@ -565,7 +565,7 @@ public abstract class SeleniumTestCase extends Assert implements Selenium
     public void click(String locator)
     {
         WebElement element = webDriver.findElement(convertLocator(locator));
-        ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(true);", element);
+        scrollIntoView(element);
         element.click();
     }
 
@@ -1426,6 +1426,12 @@ public abstract class SeleniumTestCase extends Assert implements Selenium
     // End of delegate methods
     // ---------------------------------------------------------------------
 
+
+    public void scrollIntoView(WebElement element)
+    {
+        ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(true);", element);
+    }
+
     /**
      * Formats a message from the provided arguments, which is written to System.err. In addition,
      * captures the AUT's markup, screenshot, and a report to the output directory.