HTTP Interpretierten Seitenquellcode anzeigen

Jetzt habe ich nurnoch das "Problem", dass ich beim "Betreten" der Seite händisch die Login-Daten eingeben muss - hat da nochmal jemand einen Tipp?
Wenn du dich einloggst, bekommst du im Response einen Set-Cookie Header (enthält eine CONFLUENCESESSIONID), den du als "Cookie"-Header im nächsten Request mitsenden musst. Schaue dir in den F12-Tools einfach an, was im /dologin.action Request als Response zurückkommt.
 
Läuft!

Java:
        driver.findElement(By.id("os_username")).sendKeys("xxx");
        driver.findElement(By.id("os_password")).sendKeys("xxx");
        driver.findElement(By.id("loginButton")).click();
Herzliches DANKESCHÖN an Alle! :)
 
Noch ein Hinweis: Du musst nicht über die content-id gehen, sondern kannst Dir die Elemente, die Du brauchst, z. B. auch direkt per XPath oder CSS-Selektor rauslesen. Dann brauchst Du kein HTML zu parsen.
 
Ok, danke für den Tipp, kann ich nochmal versuchen! Das Parsen war jetzt aber nicht das Problem, mit:
Java:
        String content = driver.findElement(By.id("main-content")).getAttribute("innerHTML"); 
        driver.close();       
        List<String> allMatches = new ArrayList<>();
        Matcher m = Pattern.compile("[>][A-Z_-]{2,}[<]") //$NON-NLS-1$
            .matcher(content);
hatte ich das, was ich brauchte, zusammen. =)
 
Das was du beschreibst geht hervorragend mit der RestAPI, habe ich selber schon mal für ein Projekt umgesetzt. Natürlich musst Du dann immer noch HTML parsen und dir deine Elemente entsprechend suchen. Der große Vorteil dabei ist aber, es sind reine Daten ohne JavaScript.
 
Hallo zusammen!

Ich verwende mal meinen alten Thread wieder.

Ich möchte jetzt gerne, den Seiteninhalt der Confluence-Seite verändern.
Dabei komme ich soweit bis zur Bearbeitung, aber das mit dem Speichern klappt noch nicht.
Also erstmal Code:

Java:
            JavascriptExecutor js = (JavascriptExecutor) driver;
            new Actions(driver).sendKeys("e").perform(); //$NON-NLS-1$
            new WebDriverWait(driver, 20).until(new ExpectedCondition<Boolean>() {
                @Override
                public Boolean apply(WebDriver d) {
                   return driver.findElement(By.id("wysiwygTextarea")).isDisplayed();  //$NON-NLS-1$
                }
            });
            js.executeScript("var ele=arguments[0]; ele.innerHTML += 'Seiteneigenschaften';", driver.findElement(By.id("wysiwygTextarea"))); //$NON-NLS-1$ //$NON-NLS-2$
            driver.findElement(By.id("qed-publish-button")).click(); //$NON-NLS-1$
Also eigentlich geht es darum, dass das Ganze in mehreren Schleifen läuft und ich bei ca. 2000 einzelnen Seiten, das Confluence-Seiteneigenschaften-Makro einbauen möchte.

Dabei habe ich folgende 2 Probleme:

a) Weiss ich nicht, wie ich das mit dem Makro so schreiben muss, dass er IN das Makro das jetzige "ele.innerHTML" einbettet.
b) funktioniert auch das einfache Hinzufügen eines Textes so wie im Code oben zu sehen, noch nicht. Man sieht dem ChromeDriver aber auch nicht an, dass er da Text hinzufügt. Auch vom Buttonklick sieht man nichts...

Würde mich über Hilfe sehr freuen.

MfG
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben