Example #1
0
File: Bot.java Project: byde/dogame
  public void leerReportesEspionaje() {
    Db db = new Db();
    double metal, cristal, duty;
    List<WebElement> espionajes =
        driver.findElements(By.partialLinkText("Reporte de espionaje de"));
    WebElement espia;
    List<WebElement> flotas;
    boolean sindef = true;
    String helper;
    for (WebElement row : espionajes) {
      driver.switchTo().defaultContent();
      row.click();
      try {
        (new WebDriverWait(driver, 10))
            .until(
                new ExpectedCondition<Boolean>() {

                  public Boolean apply(WebDriver d) {
                    return d.findElement(By.id("TB_iframeContent")).isEnabled();
                  }
                });
        // ((JavascriptExecutor) driver).executeScript("$(\".success\").remove();");
      } catch (Exception e) {
        consola("Error: Mensajes: No abre Iframe - " + e.getMessage());
        consola("Reintentando");
        row.click();
        (new WebDriverWait(driver, 10))
            .until(
                new ExpectedCondition<Boolean>() {

                  public Boolean apply(WebDriver d) {
                    return d.findElement(By.id("TB_iframeContent")).isEnabled();
                  }
                });
      }
      driver.switchTo().frame("TB_iframeContent");

      try {
        (new WebDriverWait(driver, 30))
            .until(
                new ExpectedCondition<Boolean>() {

                  public Boolean apply(WebDriver d) {
                    return d.findElement(By.id("showmessage")).isEnabled();
                  }
                });
        consola("Log: Mensajes: Espionaje cargado");
        // ((JavascriptExecutor) driver).executeScript("$(\".success\").remove();");
      } catch (Exception e) {
        consola("Error: Mensajes: Error Espionaje cargado - " + e.getMessage());
      }
      espia = driver.findElement(By.className("spy2"));
      for (WebElement td : espia.findElements(By.tagName("td"))) {
        consola(td.getText());
      }
      helper = driver.findElement(By.xpath("/html/body/div/div[2]/table/tbody/tr[3]/td")).getText();
      consola(helper.substring(helper.indexOf("[") + 1, helper.indexOf("]")));
      // fleetdefbuildings spy
      flotas = driver.findElements(By.className("fleetdefbuildings"));
      if (flotas.size() > 0)
        if (("Flotas".equals(flotas.get(0).findElement(By.tagName("th")).getText()))
            && (flotas.get(0).findElements(By.tagName("td")).size() == 0)) {
          consola("no hay flotas");
          if ((flotas.size() > 1)
              && ("Defensa".equals(flotas.get(1).findElement(By.tagName("th")).getText()))) {
            for (WebElement d : flotas.get(1).findElements(By.className("key"))) {
              if (!d.getText().startsWith("Misil")) sindef = false;

              consola("Aqui hay " + d.getText());
            }
            if (sindef) {
              metal =
                  Double.valueOf(
                      EliminaCaracteres(
                          espia.findElements(By.tagName("td")).get(1).getText(), "."));
              cristal =
                  Double.valueOf(
                      EliminaCaracteres(
                          espia.findElements(By.tagName("td")).get(3).getText(), "."));
              duty =
                  Double.valueOf(
                      EliminaCaracteres(
                          espia.findElements(By.tagName("td")).get(5).getText(), "."));

              db.setEspionaje(
                  helper.substring(helper.indexOf("[") + 1, helper.indexOf("]")),
                  metal,
                  cristal,
                  duty,
                  planeta);
            }
            sindef = true;
          }
        }
      driver.findElement(By.className("closeTB")).click();
      try {
        Thread.sleep(200);
      } catch (InterruptedException ex) {
        consola("Error: no duerme para cerrar mensajes");
        // Logger.getLogger(Bot.class.getName()).log(Level.SEVERE, null, ex);
      }
    }
  }