Kann nicht ausgeführt werden, klicken Sie auf Aktion in selenium-python

Schreibe ich ein test-Skript mit Selen in python. Ich habe eine web-Seite mit einem tree-view-Objekt wie folgt:

Kann nicht ausgeführt werden, klicken Sie auf Aktion in selenium-python

Ich will traverse über das Menü zu gehen, um das gewünschte Verzeichnis. Entsprechende HTML-code für plus - /minus-Angaben ist dies:

<a onclick="changeTree('tree', 'close.gif', 'open.gif');">
    <img id="someid" src="open.gif" />
</a>

Den src - Attribut des Bildes kann entweder open.gif oder close.gif.

Kann ich erkennen, ob es ein plus oder minus, einfach durch überprüfung der src Attribut des img tag. Ich kann auch problemlos Zugriff auf den parent-tag a durch die Verwendung .find_element_by_xpath("..").

Das problem ist, dass ich kann nicht führen Sie die klicken Sie auf Aktion nicht auf die img noch die a tag.

I ' V versuchte webdriver.Actions(driver).move_to_element(el).click().perform(); aber es hat nicht funktioniert.

Ich denke, ich sollte erwähnen, dass es kein problem beim Zugriff auf die Elemente, da kann ich drucken Sie alle Ihre Attribute; ich kann einfach nicht Aktionen auf Sie. Keine Hilfe?

EDIT 1:

Hier der js-code für das ausblenden und einblenden der Baum:

function changeTree(tree, image1, image2) {
    if (!isTreeviewLocked(tree)) {
        var image = document.getElementById("treeViewImage" + tree);
        if (image.src.indexOf(image1)!=-1) {
            image.src = image2;
        } else {
            image.src = image1;
        }

        if (document.getElementById("treeView" + tree).innerHTML == "") {
            return true;
        } else {
            changeMenu("treeView" + tree);
            return false;
        }
    } else {
        return false;
    }
}

EDIT 2:

Googelte ich nach ein paar Stunden fand ich heraus, dass es ein problem gibt, über das auslösen der Javascript-Ereignisse und klicken Sie auf die Aktion von web-driver. Zusätzlich habe ich eine span tag in meiner web-Seite, die eine onclick Veranstaltung und ich habe auch dieses problem auf.

  • Ich gehe davon aus, dass keine Fehler geworfen werden? Gibt es in der Nähe Elemente, die javascript mit Ihnen verbunden?
  • ja, es ist kein Fehler und natürlich gibt es auch einige js-codes. Ich weiß nicht, wie kann es bezogen werden.
  • Kannst du den javascript-code, ist das hören für die plus/minus-click-Ereignis?
  • Ich habe das js-code in die Frage, aber könnte bitte erklären Sie mir die Beziehung zwischen den js-code und das problem?
  • Ich bin auf der Suche nach dem code, der Aufrufe changeTree() bei einem Klick passiert. Das wird helfen, stellen Sie sicher, dass Ihr Selen-code ist ein Klick mit der rechten Sache.
  • Weil diese Elemente mit javascript sind wahrscheinlich die, die Sie möchten, klicken Sie auf, NICHT die Bild-Elemente. Das javascript ist wohl, was die Ordner nicht öffnen, so dass, wenn jeder aufklappbaren Ordner hat ein javascript-element in der Nähe, dann finden Sie eine Auswahl, klicken Sie auf, und es sollte funktionieren.
  • Als Anmerkung, ich bin nicht auf der Suche für die separate javascript-Datei, nur das element mit javascript in es.
  • Ok, wenn ich verstehe, was Ihr beiden gesagt, ich sollte die Antwort, dass das element, dass es onclick Veranstaltung ist changeTree() ist die a tag, dass ich in der Frage genannten. Ich aktualisierte den HTML-code.
  • In wenigen Fällen, während dem schreiben meiner eigenen Webdriver testen Fällen die ich hatte, nur selten, das gebe ich zu, hatte auf 'bypass' die-Taste und direkt rufen Sie die Javascript-das ist das Ergebnis, dass klicken Sie auf. Haben Sie versucht, die an alle? Es ist keine perfekte Lösung ich weiß, aber es kann Ihnen helfen, in der kurzen Frist.
  • Ich habe versucht, zu verwenden execute_script, aber in meinem Fall, geschieht es manchmal, dass die Ergebnisse, klicken Sie auf eine Warnung, und mit diesem Befehl sollte ich in der Nähe der Alarm manuell weiter das Skript. Folglich habe ich es gelöst mit der ActionChains Klasse. Ich habe die Antwort.

Schreibe einen Kommentar