public SelenideTargetLocator(Config config, WebDriver webDriver) { this.config = config; this.webDriver = webDriver; this.delegate = webDriver.switchTo(); }
WebDriver driver = ... // initialize the driver WebElement currentElement = driver.switchTo().activeElement();
@Override public WebDriver apply(WebDriver driver) { try { return driver.switchTo().frame(driver.findElement(locator)); } catch (NoSuchFrameException e) { return null; } catch (WebDriverException e) { return null; } }
@Override public void switchToParentFrame() { driver.switchTo().parentFrame(); }
@Override public WebDriver apply(WebDriver driver) { try { List<String> windowHandles = new ArrayList<>(driver.getWindowHandles()); return driver.switchTo().window(windowHandles.get(index)); } catch (IndexOutOfBoundsException windowWithIndexNotFound) { return null; } }
@Override public void switchToFrame(PageElement mainObject) { WebPageElement webPageElement = (WebPageElement)mainObject; driver.switchTo().frame(webPageElement.getWebElement()); }
@Override public WebDriver apply(WebDriver driver) { try { return driver.switchTo().window(nameOrHandleOrTitle); } catch (NoSuchWindowException windowWithNameOrHandleNotFound) { try { return windowByTitle(driver, nameOrHandleOrTitle); } catch (NoSuchWindowException e) { return null; } } }
private void closeNewWindows(WebDriver webDriver, String currentWindowHandle, Set<String> currentWindows) { Set<String> windowHandles = webDriver.getWindowHandles(); if (windowHandles.size() != currentWindows.size()) { Set<String> newWindows = new HashSet<>(windowHandles); newWindows.removeAll(currentWindows); log.info("File has been opened in a new window, let's close " + newWindows.size() + " new windows"); for (String newWindow : newWindows) { log.info(" Let's close " + newWindow); try { webDriver.switchTo().window(newWindow); webDriver.close(); } catch (NoSuchWindowException windowHasBeenClosedMeanwhile) { log.info(" Failed to close " + newWindow + ": " + Cleanup.of.webdriverExceptionMessage(windowHasBeenClosedMeanwhile)); } catch (Exception e) { log.warning(" Failed to close " + newWindow + ": " + e); } } webDriver.switchTo().window(currentWindowHandle); } }
Alert javascriptAlert = myTestDriver.switchTo().alert(); Alert javascriptprompt = myTestDriver.switchTo().alert(); javascriptprompt.sendKeys("This is Selenium Training"); javascriptprompt = myTestDriver.switchTo().alert(); javascriptprompt = myTestDriver.switchTo().alert(); javascriptprompt = myTestDriver.switchTo().alert(); myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click(); Alert javascriptconfirm = myTestDriver.switchTo().alert(); javascriptconfirm.accept(); javascriptconfirm = myTestDriver.switchTo().alert(); javascriptconfirm = myTestDriver.switchTo().alert(); javascriptconfirm = myTestDriver.switchTo().alert();
/** * Switch to window/tab by name/handle/title except some windows handles * @param title title of window/tab */ protected static WebDriver windowByTitle(WebDriver driver, String title) { Set<String> windowHandles = driver.getWindowHandles(); for (String windowHandle : windowHandles) { driver.switchTo().window(windowHandle); if (title.equals(driver.getTitle())) { return driver; } } throw new NoSuchWindowException("Window with title not found: " + title); }
if (retryIfAlert) { try { Alert alert = webdriver.switchTo().alert(); log.severe(e + ": " + alert.getText()); alert.accept();
/** * Closes the current browser window and switches back to the last window used previously. */ public void closeCurrentWindowAndSwitchToParentWindow() { driver.close(); driver.switchTo().window(windowHandles.pop()); }
public boolean isRubricSubQuestionBoxFocused(int qnNumber, int subQnIndex) { WebElement subQnBox = getRubricSubQuestionBox(qnNumber, subQnIndex); return subQnBox.equals(browser.driver.switchTo().activeElement()); }
public boolean isMcqWeightBoxFocused(int qnNumber, int choiceIndex) { WebElement weightBox = getMcqWeightBox(qnNumber, choiceIndex); return weightBox.equals(browser.driver.switchTo().activeElement()); }
public boolean isMsqWeightBoxFocused(int qnNumber, int choiceIndex) { WebElement weightBox = getMsqWeightBox(qnNumber, choiceIndex); return weightBox.equals(browser.driver.switchTo().activeElement()); }
public boolean isMsqOtherWeightBoxFocused(int qnNumber) { WebElement weightBox = getMsqOtherWeightBox(qnNumber); return weightBox.equals(browser.driver.switchTo().activeElement()); }
public boolean isRubricWeightBoxFocused(int qnNumber, int subQnIndex, int choiceIndex) { WebElement weightBox = getRubricWeightBox(qnNumber, subQnIndex, choiceIndex); return weightBox.equals(browser.driver.switchTo().activeElement()); }
public boolean isMcqOtherWeightBoxFocused(int qnNumber) { WebElement weightBox = getMcqOtherWeightBox(qnNumber); return weightBox.equals(browser.driver.switchTo().activeElement()); }
/** * Switches to new browser window for browsing. */ public void switchToNewWindow() { String curWin = driver.getWindowHandle(); for (String handle : driver.getWindowHandles()) { if (!handle.equals(curWin) && !windowHandles.contains(curWin)) { windowHandles.push(curWin); driver.switchTo().window(handle); break; } } }
@Test public void listenableObjectSample() { try { ContextAware listenableContextAware = getEventFiringObject(contextAware, emptyWebDriver, contextListener, alertListener); WebDriver webDriver = listenableContextAware.context("NATIVE_APP"); assertTrue(contextAwarePredicate.test(listenableContextAware)); Alert alert = webDriver.switchTo().alert(); assertTrue(alertPredicate.test(alert)); assertTrue(webDriverPredicate.test(getEventFiringWebDriver(webDriver, searchingListener))); } finally { listeners.get(ContextListener.class).messages.clear(); listeners.get(AlertListener.class).messages.clear(); listeners.get(SearchingListener.class).messages.clear(); } } }