Hallo,
ich möchte ein Programm entwickeln, dass Bilder von einem bestimmten Hashtag auf Instagram liked. Es sollen immer die 10 neuesten Bilder/Videos geliked werden und dann soll die Seite neu geladen werden. Ich habe hierfür den Selenium WebDriver genutzt. Bis jetzt funktioniert einloggen und auf die richtige Seite mit dem richtigen Hashtag navigieren. Mein Problem ist jetzt, dass auf das erste Bild geklickt werden muss um es daraufhin zu liken. Dies funktioniert aber nicht. Ist meine Herangehensweise grundsätlich in Ordnung oder kann man das ganze auch anderst machen?
Bei der Methode "like" habe ich eigentlich alles ausprobiert: xpath,css, class name ...
Nichts wird erkannt. Ich würde mich freuen, wenn ich gute Tipps für mich habt. Ich bin noch sehr unerfahren was programmieren angeht.
ich möchte ein Programm entwickeln, dass Bilder von einem bestimmten Hashtag auf Instagram liked. Es sollen immer die 10 neuesten Bilder/Videos geliked werden und dann soll die Seite neu geladen werden. Ich habe hierfür den Selenium WebDriver genutzt. Bis jetzt funktioniert einloggen und auf die richtige Seite mit dem richtigen Hashtag navigieren. Mein Problem ist jetzt, dass auf das erste Bild geklickt werden muss um es daraufhin zu liken. Dies funktioniert aber nicht. Ist meine Herangehensweise grundsätlich in Ordnung oder kann man das ganze auch anderst machen?
Java:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class insta {
WebDriver driver = new FirefoxDriver();
private String username = "name";
private String password = "pw";
private String hashtag = "ht";
public static void main(String[] args) {
insta bot = new insta();
bot.login();
bot.searchHashtag();
bot.like();
}
public void login() {
driver.get("https://www.instagram.com/accounts/login/");
driver.findElement(By.xpath("//*[@id='react-root']/div/article/div/div[1]/div/form/div[1]/input")).click();
driver.findElement(By.xpath("//*[@id='react-root']/div/article/div/div[1]/div/form/div[1]/input")).sendKeys(username);
driver.findElement(By.xpath("//*[@id='react-root']/div/article/div/div[1]/div/form/div[2]/input")).click();
driver.findElement(By.xpath("//*[@id='react-root']/div/article/div/div[1]/div/form/div[2]/input")).sendKeys(password);
driver.findElement(By.xpath("//*[@id='react-root']/div/article/div/div[1]/div/form/button")).click();
try {
Thread.sleep(3000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
driver.findElement(By.xpath("//*[@id='react-root']/div/article/div/div[1]/div/form/button")).click();
driver.get("https://www.instagram.com/");
}
public void searchHashtag(){
driver.findElement(By.xpath("//*[@id='react-root']/section/nav/div/div/div/div/div")).click();
driver.findElement(By.xpath("//*[@id='react-root']/section/nav/div/div/div/input")).sendKeys(hashtag);
driver.findElement(By.xpath("//*[@id='react-root']/section/nav/div/div/div/div[2]/div[2]/div/a[1]/div/div[1]/span")).click();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
public void like(){
driver.findElement(By.className("_22yr2"));
try {
Thread.sleep(3000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
driver.findElement(By.xpath("_22yr2"));
try {
Thread.sleep(3000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
Bei der Methode "like" habe ich eigentlich alles ausprobiert: xpath,css, class name ...
Nichts wird erkannt. Ich würde mich freuen, wenn ich gute Tipps für mich habt. Ich bin noch sehr unerfahren was programmieren angeht.
Zuletzt bearbeitet von einem Moderator: