Search in sources :

Example 71 with CustomEventFiringWebDriver

use of com.seleniumtests.driver.CustomEventFiringWebDriver in project seleniumRobot by bhecquet.

the class TestHtmlElement method testGetCenter.

@Test(groups = { "ut" })
public void testGetCenter() throws Exception {
    SeleniumTestsContextManager.getThreadContext().setTestType(TestType.APPIUM_WEB_ANDROID);
    SeleniumTestsContextManager.getThreadContext().setPlatform("android");
    when(WebUIDriver.getWebDriver(anyBoolean())).thenReturn(new CustomEventFiringWebDriver(mobileDriver));
    doNothing().when(el).findElement(anyBoolean(), anyBoolean());
    el.setElement(mobileElement);
    el.getCenter();
    PowerMockito.verifyPrivate(el, atLeastOnce()).invoke("checkForMobile");
}
Also used : CustomEventFiringWebDriver(com.seleniumtests.driver.CustomEventFiringWebDriver) Test(org.testng.annotations.Test) MockitoTest(com.seleniumtests.MockitoTest) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest)

Example 72 with CustomEventFiringWebDriver

use of com.seleniumtests.driver.CustomEventFiringWebDriver in project seleniumRobot by bhecquet.

the class TestHtmlElement method testSwipe1.

@Test(groups = { "ut" })
public void testSwipe1() throws Exception {
    SeleniumTestsContextManager.getThreadContext().setTestType(TestType.APPIUM_WEB_ANDROID);
    SeleniumTestsContextManager.getThreadContext().setPlatform("android");
    when(WebUIDriver.getWebDriver(anyBoolean())).thenReturn(new CustomEventFiringWebDriver(mobileDriver));
    doNothing().when(el).findElement(anyBoolean(), anyBoolean());
    el.setElement(mobileElement);
    el.swipe(0, 0, 0, 10);
    PowerMockito.verifyPrivate(el, atLeastOnce()).invoke("checkForMobile");
}
Also used : CustomEventFiringWebDriver(com.seleniumtests.driver.CustomEventFiringWebDriver) Test(org.testng.annotations.Test) MockitoTest(com.seleniumtests.MockitoTest) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest)

Example 73 with CustomEventFiringWebDriver

use of com.seleniumtests.driver.CustomEventFiringWebDriver in project seleniumRobot by bhecquet.

the class TestHtmlElement method init.

@BeforeMethod(groups = { "ut" })
private void init() throws WebDriverException, IOException {
    // mimic sub elements of the HtmlElement
    List<WebElement> subElList = new ArrayList<WebElement>();
    subElList.add(subElement1);
    subElList.add(subElement2);
    // list of elements correspond
    List<WebElement> elList = new ArrayList<WebElement>();
    elList.add(element);
    // add DriverExceptionListener to reproduce driver behavior
    eventDriver = spy(new CustomEventFiringWebDriver(driver).register(new DriverExceptionListener()));
    PowerMockito.mockStatic(WebUIDriver.class);
    when(WebUIDriver.getWebDriver(anyBoolean())).thenReturn(eventDriver);
    when(WebUIDriver.getWebUIDriver(anyBoolean())).thenReturn(uiDriver);
    when(driver.findElement(By.id("el"))).thenReturn(element);
    when(driver.findElement(By.id("frame"))).thenReturn(frameElement);
    when(driver.findElements(By.id("frame"))).thenReturn(Arrays.asList(frameElement));
    when(driver.findElements(By.name("subEl"))).thenReturn(subElList);
    when(driver.findElement(By.name("subEl"))).thenReturn(subElement1);
    when(driver.findElements(By.id("el"))).thenReturn(elList);
    when(driver.getKeyboard()).thenReturn(keyboard);
    when(driver.getMouse()).thenReturn(mouse);
    when(driver.switchTo()).thenReturn(locator);
    when(driver.manage()).thenReturn(options);
    when(options.timeouts()).thenReturn(timeouts);
    when(driver.executeScript(anyString())).thenReturn(Arrays.asList(100, 100));
    when(uiDriver.getConfig()).thenReturn(driverConfig);
    when(driverConfig.getBrowserType()).thenReturn(BrowserType.HTMLUNIT);
    when(driverConfig.getMajorBrowserVersion()).thenReturn(1);
    when(element.findElement(By.name("subEl"))).thenReturn(subElement1);
    when(element.findElements(By.name("subEl"))).thenReturn(subElList);
    when(element.getAttribute(anyString())).thenReturn("attribute");
    when(element.getSize()).thenReturn(new Dimension(10, 10));
    when(element.getLocation()).thenReturn(new Point(5, 5));
    when(frame.getLocation()).thenReturn(new Point(5, 5));
    when(element.getTagName()).thenReturn("h1");
    when(element.getText()).thenReturn("text");
    when(element.isDisplayed()).thenReturn(true);
    when(element.isEnabled()).thenReturn(true);
    when(subElement1.isDisplayed()).thenReturn(true);
    when(subElement2.isDisplayed()).thenReturn(true);
    when(subElement1.getLocation()).thenReturn(new Point(5, 5));
    when(subElement2.getLocation()).thenReturn(new Point(5, 5));
    when(mobileElement.getCenter()).thenReturn(new Point(2, 2));
    when(mobileElement.getLocation()).thenReturn(new Point(1, 1));
    when(mobileElement.isDisplayed()).thenReturn(true);
    when(mobileElement.getId()).thenReturn("12");
    // init for mobile tests
    AppiumCommandExecutor ce = Mockito.mock(AppiumCommandExecutor.class);
    Response response = new Response(new SessionId("1"));
    response.setValue(new HashMap<String, Object>());
    Response findResponse = new Response(new SessionId("1"));
    findResponse.setValue(mobileElement);
    when(ce.execute(any())).thenReturn(response, response, response, findResponse);
    doReturn(response).when(ce).execute(argThat(command -> DriverCommand.NEW_SESSION.equals(command.getName())));
    doReturn(response).when(ce).execute(argThat(command -> DriverCommand.FIND_ELEMENT.equals(command.getName())));
    doReturn(response).when(ce).execute(argThat(command -> "getSession".equals(command.getName())));
    // newSession, getSession, getSession, findElement
    mobileDriver = Mockito.spy(new AppiumDriver<>(ce, new DesiredCapabilities()));
    SeleniumTestsContextManager.getThreadContext().setTestType(TestType.WEB);
    SeleniumTestsContextManager.getThreadContext().setBrowser("htmlunit");
}
Also used : StepStatus(com.seleniumtests.reporter.logger.TestStep.StepStatus) Arrays(java.util.Arrays) TargetLocator(org.openqa.selenium.WebDriver.TargetLocator) DriverExceptionListener(com.seleniumtests.driver.DriverExceptionListener) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) WebElement(org.openqa.selenium.WebElement) Test(org.testng.annotations.Test) RemoteWebElement(org.openqa.selenium.remote.RemoteWebElement) Keyboard(org.openqa.selenium.interactions.Keyboard) Point(org.openqa.selenium.Point) HtmlElement(com.seleniumtests.uipage.htmlelements.HtmlElement) TestType(com.seleniumtests.driver.TestType) Timeouts(org.openqa.selenium.WebDriver.Timeouts) Spy(org.mockito.Spy) Mockito.atLeast(org.mockito.Mockito.atLeast) TestStepManager(com.seleniumtests.core.TestStepManager) ScenarioException(com.seleniumtests.customexception.ScenarioException) Mockito.doReturn(org.mockito.Mockito.doReturn) AppiumCommandExecutor(io.appium.java_client.remote.AppiumCommandExecutor) Mockito.atLeastOnce(org.mockito.Mockito.atLeastOnce) BeforeMethod(org.testng.annotations.BeforeMethod) Mockito.doNothing(org.mockito.Mockito.doNothing) Mouse(org.openqa.selenium.interactions.Mouse) DesiredCapabilities(org.openqa.selenium.remote.DesiredCapabilities) BrowserType(com.seleniumtests.driver.BrowserType) MockitoTest(com.seleniumtests.MockitoTest) List(java.util.List) TimeoutException(org.openqa.selenium.TimeoutException) TestStep(com.seleniumtests.reporter.logger.TestStep) Pattern(java.util.regex.Pattern) AppiumDriver(io.appium.java_client.AppiumDriver) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) MobileElement(io.appium.java_client.MobileElement) Mock(org.mockito.Mock) TemporalUnit(java.time.temporal.TemporalUnit) WebDriverException(org.openqa.selenium.WebDriverException) LocalDateTime(java.time.LocalDateTime) HashMap(java.util.HashMap) ArgumentMatchers.anyBoolean(org.mockito.ArgumentMatchers.anyBoolean) Mockito.spy(org.mockito.Mockito.spy) ArrayList(java.util.ArrayList) SeleniumTestsContextManager(com.seleniumtests.core.SeleniumTestsContextManager) Assert(org.testng.Assert) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) WebUIDriver(com.seleniumtests.driver.WebUIDriver) Options(org.openqa.selenium.WebDriver.Options) PowerMockito(org.powermock.api.mockito.PowerMockito) DriverCommand(org.openqa.selenium.remote.DriverCommand) Dimension(org.openqa.selenium.Dimension) EventFiringWebDriver(org.openqa.selenium.support.events.EventFiringWebDriver) Response(org.openqa.selenium.remote.Response) FrameElement(com.seleniumtests.uipage.htmlelements.FrameElement) By(org.openqa.selenium.By) Mockito.times(org.mockito.Mockito.times) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) RemoteWebDriver(org.openqa.selenium.remote.RemoteWebDriver) Mockito.verify(org.mockito.Mockito.verify) NoSuchElementException(org.openqa.selenium.NoSuchElementException) Mockito(org.mockito.Mockito) Mockito.never(org.mockito.Mockito.never) ChronoUnit(java.time.temporal.ChronoUnit) CustomEventFiringWebDriver(com.seleniumtests.driver.CustomEventFiringWebDriver) SessionId(org.openqa.selenium.remote.SessionId) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) DriverConfig(com.seleniumtests.driver.DriverConfig) CustomEventFiringWebDriver(com.seleniumtests.driver.CustomEventFiringWebDriver) DriverExceptionListener(com.seleniumtests.driver.DriverExceptionListener) AppiumDriver(io.appium.java_client.AppiumDriver) AppiumCommandExecutor(io.appium.java_client.remote.AppiumCommandExecutor) DesiredCapabilities(org.openqa.selenium.remote.DesiredCapabilities) ArrayList(java.util.ArrayList) Dimension(org.openqa.selenium.Dimension) Point(org.openqa.selenium.Point) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) WebElement(org.openqa.selenium.WebElement) RemoteWebElement(org.openqa.selenium.remote.RemoteWebElement) Response(org.openqa.selenium.remote.Response) SessionId(org.openqa.selenium.remote.SessionId) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 74 with CustomEventFiringWebDriver

use of com.seleniumtests.driver.CustomEventFiringWebDriver in project seleniumRobot by bhecquet.

the class TestPictureElement method testPictureVisible.

@Test(groups = { "ut" })
public void testPictureVisible() throws AWTException {
    PictureElement picElement = spy(pictureElement);
    PowerMockito.mockStatic(WebUIDriver.class);
    when(WebUIDriver.getWebDriver(anyBoolean())).thenReturn(driver);
    when(WebUIDriver.getWebUIDriver(anyBoolean())).thenReturn(uiDriver);
    when(uiDriver.getDriver()).thenReturn(driver);
    when(((CustomEventFiringWebDriver) driver).getDeviceAspectRatio()).thenReturn(1.0);
    picElement.setObjectPictureFile(new File(""));
    doReturn(screenshotUtil).when(picElement).getScreenshotUtil();
    when(screenshotUtil.capture(SnapshotTarget.PAGE, File.class, true)).thenReturn(new File(""));
    when(imageDetector.getDetectedRectangle()).thenReturn(new Rectangle(10, 10, 100, 50));
    when(imageDetector.getSizeRatio()).thenReturn(1.0);
    Assert.assertTrue(picElement.isElementPresent(2000));
    verify(picElement).findElement();
}
Also used : PictureElement(com.seleniumtests.uipage.htmlelements.PictureElement) CustomEventFiringWebDriver(com.seleniumtests.driver.CustomEventFiringWebDriver) Rectangle(org.openqa.selenium.Rectangle) File(java.io.File) Test(org.testng.annotations.Test) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) MockitoTest(com.seleniumtests.MockitoTest)

Example 75 with CustomEventFiringWebDriver

use of com.seleniumtests.driver.CustomEventFiringWebDriver in project seleniumRobot by bhecquet.

the class TestPictureElement method testClick.

@Test(groups = { "ut" })
public void testClick() {
    PictureElement picElement = spy(pictureElement);
    picElement.setObjectPictureFile(new File(""));
    PowerMockito.mockStatic(WebUIDriver.class);
    when(WebUIDriver.getWebDriver(anyBoolean())).thenReturn(driver);
    when(WebUIDriver.getWebUIDriver(anyBoolean())).thenReturn(uiDriver);
    when(uiDriver.getDriver()).thenReturn(driver);
    when(uiDriver.getConfig()).thenReturn(driverConfig);
    when(driverConfig.getBrowserType()).thenReturn(BrowserType.FIREFOX);
    when(driver.getMouse()).thenReturn(mouse);
    when(driver.getKeyboard()).thenReturn(keyboard);
    when(driver.getBrowserInfo()).thenReturn(browserInfo);
    when(((CustomEventFiringWebDriver) driver).getDeviceAspectRatio()).thenReturn(1.0);
    when(browserInfo.getBrowser()).thenReturn(BrowserType.FIREFOX);
    when(screenshotUtil.capture(SnapshotTarget.PAGE, File.class, true)).thenReturn(new File(""));
    when(imageDetector.getDetectedRectangle()).thenReturn(new Rectangle(10, 10, 100, 50));
    when(imageDetector.getSizeRatio()).thenReturn(1.0);
    when(coordinates.inViewPort()).thenReturn(new Point(100, 120));
    when(coordinates.onPage()).thenReturn(new Point(100, 120));
    when(intoElement.getCoordinates()).thenReturn(coordinates);
    when(intoElement.getSize()).thenReturn(new Dimension(200, 200));
    doReturn(screenshotUtil).when(picElement).getScreenshotUtil();
    picElement.click();
    verify(picElement).moveAndClick(intoElement, -65, -60);
}
Also used : PictureElement(com.seleniumtests.uipage.htmlelements.PictureElement) CustomEventFiringWebDriver(com.seleniumtests.driver.CustomEventFiringWebDriver) Rectangle(org.openqa.selenium.Rectangle) Point(org.openqa.selenium.Point) Dimension(org.openqa.selenium.Dimension) File(java.io.File) Test(org.testng.annotations.Test) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) MockitoTest(com.seleniumtests.MockitoTest)

Aggregations

CustomEventFiringWebDriver (com.seleniumtests.driver.CustomEventFiringWebDriver)77 Test (org.testng.annotations.Test)53 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)36 MockitoTest (com.seleniumtests.MockitoTest)35 Dimension (org.openqa.selenium.Dimension)26 WebDriver (org.openqa.selenium.WebDriver)14 GenericDriverTest (com.seleniumtests.GenericDriverTest)12 Point (org.openqa.selenium.Point)12 GenericTest (com.seleniumtests.GenericTest)10 ScenarioException (com.seleniumtests.customexception.ScenarioException)9 WebDriverException (org.openqa.selenium.WebDriverException)7 BeforeMethod (org.testng.annotations.BeforeMethod)7 DriverExceptionListener (com.seleniumtests.driver.DriverExceptionListener)6 SkipException (org.testng.SkipException)6 NLWebDriver (com.neotys.selenium.proxies.NLWebDriver)5 File (java.io.File)5 IOException (java.io.IOException)5 Rectangle (org.openqa.selenium.Rectangle)5 WebElement (org.openqa.selenium.WebElement)5 BrowserInfo (com.seleniumtests.browserfactory.BrowserInfo)4