Package com.crawljax.core.state

Examples of com.crawljax.core.state.Eventable


    List<Map<String, String>> elements =
            Lists.newArrayListWithCapacity(candidateElements.size());

    for (CandidateElementPosition element : candidateElements) {
      Eventable eventable = getEventableByCandidateElementInState(state, element);
      StateVertex toState = null;
      Map<String, String> elementMap = new HashMap<String, String>();
      elementMap.put("xpath", element.getXpath());
      elementMap
              .put("left", "" + (element.getLeft() - 3 + state.getScreenshotOffsetLeft()));
View Full Code Here


   * @param eventable
   *            the eventable to fire
   * @return true iff the event is fired
   */
  private boolean fireEvent(Eventable eventable) {
    Eventable eventToFire = eventable;
    if (eventable.getIdentification().getHow().toString().equals("xpath")
            && eventable.getRelatedFrame().equals("")) {
      eventToFire = resolveByXpath(eventable, eventToFire);
    }
    boolean isFired = false;
    try {
      isFired = browser.fireEventAndWait(eventToFire);
    } catch (ElementNotVisibleException | NoSuchElementException e) {
      if (crawlRules.isCrawlHiddenAnchors() && eventToFire.getElement() != null
              && "A".equals(eventToFire.getElement().getTag())) {
        isFired = visitAnchorHrefIfPossible(eventToFire);
      } else {
        LOG.debug("Ignoring invisble element {}", eventToFire.getElement());
      }
    } catch (InterruptedException e) {
      LOG.debug("Interrupted during fire event");
      Thread.currentThread().interrupt();
      return false;
View Full Code Here

    String newXPath = new ElementResolver(eventable, browser).resolve();
    if (newXPath != null && !xpath.equals(newXPath)) {
      LOG.debug("XPath changed from {} to {} relatedFrame: {}", xpath, newXPath,
              eventable.getRelatedFrame());
      eventToFire =
              new Eventable(new Identification(Identification.How.xpath, newXPath),
                      eventType);
    }
    return eventToFire;
  }
View Full Code Here

    CandidateCrawlAction action =
            candidateActionCache.pollActionOrNull(stateMachine.getCurrentState());
    while (action != null && !interrupted) {
      CandidateElement element = action.getCandidateElement();
      if (element.allConditionsSatisfied(browser)) {
        Eventable event = new Eventable(element, action.getEventType());
        handleInputElements(event);
        waitForRefreshTagIfAny(event);

        boolean fired = fireEvent(event);
        if (fired) {
View Full Code Here

      String newXPath = new ElementResolver(eventable, getBrowser()).resolve();
      if (newXPath != null && !xpath.equals(newXPath)) {
        LOGGER.info("XPath changed from " + xpath + " to " + newXPath + " relatedFrame:"
                + eventable.getRelatedFrame());
        eventable =
                new Eventable(new Identification(Identification.How.xpath, newXPath),
                        eventType);
      }
    }

    if (getBrowser().fireEvent(eventable)) {
View Full Code Here

    EventType eventType = action.getEventType();

    StateVertix orrigionalState = this.getStateMachine().getCurrentState();

    if (candidateElement.allConditionsSatisfied(getBrowser())) {
      ClickResult clickResult = clickTag(new Eventable(candidateElement, eventType));
      switch (clickResult) {
        case cloneDetected:
          fired = false;
          // We are in the clone state so we continue with the cloned version to search
          // for work.
View Full Code Here

  public List<List<Eventable>> getCrawlPaths() {
    List<List<Eventable>> paths = new ArrayList<List<Eventable>>();
    for (List<Transition> transitions : savedCrawlSession.getCrawlPaths()) {
      List<Eventable> path = new ArrayList<Eventable>();
      for (Transition transition : transitions) {
        Eventable e =
                savedCrawlSession.getMapEventables().get(transition.getEventableId());
        // TODO Why is this null?
        if (e != null) {
          path.add(e);
        }
View Full Code Here

  private Map<Long, Eventable> getEventables() {
    setEventableIds();
    Map<Long, Eventable> mapEventables = new HashMap<Long, Eventable>();
    for (Eventable orgEventable : session.getStateFlowGraph().getAllEdges()) {
      Eventable eventable =
              new Eventable(orgEventable.getElement().getNode(), orgEventable
                      .getEventType());
      eventable.setId(orgEventable.getId());
      eventable.setRelatedFormInputs(orgEventable.getRelatedFormInputs());
      mapEventables.put(eventable.getId(), eventable);
    }
    return mapEventables;
  }
View Full Code Here

       */
      String newXPath = new ElementResolver(eventable, getBrowser()).resolve();
      if (newXPath != null && !xpath.equals(newXPath)) {
        LOGGER.info("XPath changed from " + xpath + " to " + newXPath + " relatedFrame:"
                + eventable.getRelatedFrame());
        eventable = new Eventable(
                new Identification(Identification.How.xpath, newXPath), eventType);
      }
    }

    if (getBrowser().fireEvent(eventable)) {
View Full Code Here

    EventType eventType = action.getEventType();

    StateVertix orrigionalState = this.getStateMachine().getCurrentState();

    if (candidateElement.allConditionsSatisfied(getBrowser())) {
      ClickResult clickResult = clickTag(new Eventable(candidateElement, eventType));
      switch (clickResult) {
        case cloneDetected:
          fired = false;
          // We are in the clone state so we continue with the cloned version to search
          // for work.
View Full Code Here

TOP

Related Classes of com.crawljax.core.state.Eventable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.