Search in sources :

Example 6 with DriverExceptionListener

use of com.seleniumtests.driver.DriverExceptionListener 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)

Aggregations

CustomEventFiringWebDriver (com.seleniumtests.driver.CustomEventFiringWebDriver)6 DriverExceptionListener (com.seleniumtests.driver.DriverExceptionListener)6 MockitoTest (com.seleniumtests.MockitoTest)4 Dimension (org.openqa.selenium.Dimension)4 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)4 Test (org.testng.annotations.Test)4 BrowserType (com.seleniumtests.driver.BrowserType)2 ArrayList (java.util.ArrayList)2 BeforeMethod (org.testng.annotations.BeforeMethod)2 SeleniumTestsContextManager (com.seleniumtests.core.SeleniumTestsContextManager)1 TestStepManager (com.seleniumtests.core.TestStepManager)1 ScenarioException (com.seleniumtests.customexception.ScenarioException)1 DriverConfig (com.seleniumtests.driver.DriverConfig)1 TestType (com.seleniumtests.driver.TestType)1 WebUIDriver (com.seleniumtests.driver.WebUIDriver)1 TestStep (com.seleniumtests.reporter.logger.TestStep)1 StepStatus (com.seleniumtests.reporter.logger.TestStep.StepStatus)1 FrameElement (com.seleniumtests.uipage.htmlelements.FrameElement)1 HtmlElement (com.seleniumtests.uipage.htmlelements.HtmlElement)1 AppiumDriver (io.appium.java_client.AppiumDriver)1