Automatische Überprüfung von Websites und Websystemen mit Selen.
Ich kann dieses Element nicht mit find_element_by_xpath
erhalten!
Ich könnte das Element kurz davor nehmen ...!
Ursprünglich gab es eine Website, auf der stand: "Aus irgendeinem Grund kann diese Website nicht mit Selen überprüft werden."
Eh auf keinen Fall www Die Art und Weise, die Person zusammenzusetzen, die es gemacht hat (nicht mehr), ist schlecht www
Fragen Sie die Mitglieder: "Möchten Sie wieder zusammenbauen?" Dann wurde dieses Wort zurückgegeben.
Das war's. Ich habe alles geworfen, also lass es uns in HTML sehen.
** Jeder, lasst uns HTML Klassen- und ID-Attribute hinzufügen! ** ** **
… Es ist jedoch Unsinn, den Bildschirm so zu ändern, dass eine „Validierungsautomatisierung“ durchgeführt wird. Website Obwohl es sich um eine Website handelt, handelt es sich bei dem Inhalt ohnehin um ein Websystem. Es könnte PHP oder JSP sein.
Dieses Mal möchte ich den Text von Artikel 2 von sample.html
erhalten!
Ich möchte erklären, dass dies eine Voraussetzung war.
sample.html
<html>
<head><!--Kürzung--></head>
<body>
<div id='wrap'>
<div class='article'>
<article>
<h1>Artikel 1 Titel</h1>
<div>
<p>Hauptteil von Artikel 1</p>
</div>
</article>
</div><!-- .article -->
<div class='article'>
<article>
<h1>Artikel 2 Titel</h1>
<div>
<p>Hauptteil von Artikel 2</p>
</div>
</article>
</div><!-- .article -->
</div><!-- #wrap -->
</body>
</html>
Hier ist die Spezifikationsmethode, von der gesagt wurde, dass sie "nicht funktioniert".
Funktioniert nicht.py
path = "/html/body/div/div[2]/article/div"
elmt = driver.find_element_by_xpath(path)
Es scheint, dass Sie das "div" im zweiten "Artikel" des "div" (class = article) im "div" (id = wrap) im "body" im "html" angeben möchten.
Hmmmm. Ist das nicht "/ html / body / div [5]"?
Ich denke es funktioniert.py
path = "/html/body/div[5]"
elmt = driver.find_element_by_xpath(path)
In der xpath-Spezifikation spielt es keine Rolle, wie die Bildschirmelemente verschachtelt sind.
** "Wie oft ist der Div von oben erschienen?" ** ist das Kriterium für die Beurteilung.
Ist es der CSS-Pseudoklasse : nth-child ()
ähnlich?
Ich möchte den zweiten "
Verschiedene Dinge verschwinden.css
div#wrap div:nth-child(2) { display: none; }
Wenn Sie angeben, wird das "zweite Div" im ersten "Div # Wrap" gelöscht. Im Fall von sample.html sind alle Texte von Artikel 1 und Artikel 2 ausgeblendet. (Da es sich um ein Beispiel handelt, geben Sie die Klasse an! ... Sagen Sie nicht)
Hmm. Irgendwas stimmt nicht. ..
Wie auch immer, die Kreatur, die als Programmierer bezeichnet wird, ist eine Rasse, die davon lebt, sich Gedanken über Einrückungen und Nester zu machen. Es kann also missverstanden werden, aber ich weiß nicht, welche Art von Struktur der HTML-Code in einem externen Programm geschrieben ist. Ob CSS, Python oder Java, sie bewegen sich nicht im Licht des menschlichen Willens. Nur die ** Leute **, die es entwickelt haben, wissen, dass "es mehrere Artikel gibt und es ähnliche Blöcke gibt" wie in diesem Fall.
** Wie oft wird das Element bei der Angabe eines Elements mit find_element_by_xpath von oben gezählt? Achten Sie bitte auf **.
Recommended Posts