Advertisement
Guest User

AutoAnswer

a guest
Dec 15th, 2019
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.77 KB | None | 0 0
  1.  
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import org.apache.commons.io.FileUtils;
  8.  
  9. import com.gargoylesoftware.htmlunit.WebClient;
  10. import com.gargoylesoftware.htmlunit.html.DomNode;
  11. import com.gargoylesoftware.htmlunit.html.HtmlButton;
  12. import com.gargoylesoftware.htmlunit.html.HtmlInput;
  13. import com.gargoylesoftware.htmlunit.html.HtmlNumberInput;
  14. import com.gargoylesoftware.htmlunit.html.HtmlPage;
  15. import com.gargoylesoftware.htmlunit.html.HtmlRangeInput;
  16. import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
  17.  
  18. public class AutoAnswer {
  19.  
  20.     public static boolean handleObject(DomNode o, HtmlPage page, WebClient client) throws IOException {
  21.  
  22.         //debug
  23.         Main_Win.dtrpnPagecontent.setText(o.toString());
  24.         Main_Win.log("Handling Object: " + o);
  25.  
  26.         if(o instanceof HtmlInput) {
  27.  
  28.             HtmlInput i = (HtmlInput) o;
  29.  
  30.             if(i.getTypeAttribute().equalsIgnoreCase("checkbox")) {
  31.                 i.click();
  32.                 Main_Win.log("Checkbox checked");
  33.                 return false;
  34.             } else if(i.getTypeAttribute().equalsIgnoreCase("text")) {
  35.                 //              i.click();
  36.                 Main_Win.log("Entering text");
  37.                 ((HtmlTextInput)i).type("42069");
  38.                 Main_Win.log("Text entered");
  39.                 return false;
  40.             } else if(i.getTypeAttribute().equalsIgnoreCase("number")) {
  41.                 i.click();
  42.                 HtmlNumberInput nb = (HtmlNumberInput) i;
  43.                 nb.type("42069");
  44.                 Main_Win.log("Number entered");
  45.                 return false;
  46.             } else if(i.getTypeAttribute().equalsIgnoreCase("radio")) {
  47.                 Main_Win.log(i.getTypeAttribute());
  48.                 i.click();
  49.                 Main_Win.log("Radio clicked.");
  50.                 return false;
  51.             } else if(i.getTypeAttribute().equalsIgnoreCase("range")) {
  52.                 HtmlRangeInput r = (HtmlRangeInput)i;
  53.                 r.setValueAttribute(r.getDefaultValue());
  54.                 Main_Win.log("Range set.");
  55.                 return false;
  56.             } else if(i.getTypeAttribute().equalsIgnoreCase("submit")) {
  57.  
  58.                 if(i.toString().contains("weiter") || i.toString().contains("Weiter")){
  59.                    
  60.                     Main_Win.log("LOGGING BUTTON RETURN PAGE--------");
  61.                     Main_Win.log("Page before click: " + page);
  62.                     page = Main.clickCorrectly(i, client);
  63.                     Main_Win.log("Page after click: " + page);
  64.                     Main_Win.log("Button clicked SUBMIT.");
  65.                     Main_Win.log("Button: " + i);
  66.                     Main_Win.log("URL: " + page.getUrl());
  67.                     Main_Win.log("END LOGGING BUTTON RETURN PAGE--------");
  68.                    
  69.                     return true;
  70.                 }
  71.             } else if(i.getTypeAttribute().equalsIgnoreCase("button")) {
  72.                 if(i.toString().contains("weiter") || i.toString().contains("Weiter")){
  73.                     Main_Win.log("LOGGING BUTTON RETURN PAGE--------");
  74.                     Main_Win.log("Page before click: " + page);
  75.                     page = Main.clickCorrectly(i, client);
  76.                     Main_Win.log("Page after click: " + page);
  77.                     Main_Win.log("Button clicked INPUT.");
  78.                     Main_Win.log("Button: " + i);
  79.                     Main_Win.log("URL: " + page.getUrl());
  80.                     Main_Win.log("END LOGGING BUTTON RETURN PAGE--------");
  81.                     return true;
  82.                 }
  83.             }
  84.         } else  if(o instanceof HtmlButton) {
  85.             HtmlButton i = (HtmlButton)o;
  86.             if(i.toString().contains("weiter") || i.toString().contains("Weiter")){
  87.                 Main_Win.log("LOGGING BUTTON RETURN PAGE--------");
  88.                 Main_Win.log("Page before click: " + page);
  89.                 page = Main.clickCorrectly(i, client);
  90.                 Main_Win.log("Page after click: " + page);
  91.                 Main_Win.log("Button clicked BUTTON.");
  92.                 Main_Win.log("Button: " + i);
  93.                 Main_Win.log("URL: " + page.getUrl());
  94.                 Main_Win.log("END LOGGING BUTTON RETURN PAGE--------");
  95.                 return true;
  96.             }
  97.         }
  98.  
  99.         Main_Win.log("Object couldn't be handeled: " + o + "\n");
  100.         return false;
  101.     }
  102.  
  103.  
  104.     public static void completeIt(HtmlPage page, WebClient client) throws IOException {
  105.  
  106.         Main_Win.log("URL: " + page.getUrl());
  107.  
  108.         while(true) {
  109.             boolean cont = false;
  110.            
  111.             for(Object o : page.getElementsByTagName("input")) {
  112.                 HtmlInput i = (HtmlInput)o;
  113.                 Main_Win.log("Input: " + i.asText());
  114.                 if(i.toString().contains("Weiter") || i.toString().contains("weiter")) {
  115.                     cont = true;
  116.                 }
  117.             }
  118.             for(Object o : page.getElementsByTagName("button")) {
  119.                 HtmlButton i = (HtmlButton)o;
  120.                 Main_Win.log("Button: " + i.asText());
  121.                 if(i.toString().contains("Weiter") || i.toString().contains("weiter")) {
  122.                     cont = true;
  123.                 }
  124.             }
  125.  
  126.             Main_Win.log("Cont: " + cont);
  127.             if(!cont) {
  128.                 Main_Win.log("End of survey reached, writing to file.");
  129.                 FileUtils.writeStringToFile(new File("C:\\xyz\\" + System.currentTimeMillis() + ".txt"), page.asText(), "UTF-8");
  130.                 break;
  131.             }
  132.            
  133.             List<DomNode> elements = new ArrayList<DomNode>();
  134.             elements.addAll(page.getElementsByTagName("input"));
  135.             elements.addAll(page.getElementsByTagName("button"));
  136.             for(DomNode e : elements) {
  137.                 if(handleObject(e, page, client)) {
  138.                     Main_Win.log(page.asText());
  139.                     break;
  140.                 }
  141.             }
  142.         }
  143.     }
  144.  
  145.  
  146.  
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement