Heim  >  Artikel  >  Backend-Entwicklung  >  Wie klicke ich mit Python Selenium auf Schaltflächen mit komplexer HTML-Struktur?

Wie klicke ich mit Python Selenium auf Schaltflächen mit komplexer HTML-Struktur?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-22 15:58:03751Durchsuche

How to Click Buttons with Complex HTML Structure Using Python Selenium?

Python Selenium: Klicken auf Schaltflächen mit komplexer HTML-Struktur

Bei Ihrer Begegnung mit Python Selenium suchen Sie nach einer Methode, mit der Sie auf Schaltflächen klicken können die folgende HTML-Struktur:

<code class="html"><div class="b_div">
    <div class="button c_button s_button" onclick="submitForm('mTF')">
        <input class="very_small" type="button">
        <div class="s_image"></div>
        <span>
           Search
        </span>
    </div>
    <div class="button c_button s_button" onclick="submitForm('rMTF')" style="margin-bottom: 30px;">
        <input class="v_small" type="button">
        <span>
              Reset
        </span>
   </div>
</div></code>

Trotz Versuchen mit verschiedenen CSS-Selektoren wie:

driver.find_element_by_css_selector('.button .c_button .s_button').click()
driver.find_element_by_name('s_image').click()
driver.find_element_by_class_name('s_image').click()

Sie sind auf die NoSuchElementException gestoßen. Um dieser Herausforderung zu begegnen, waren Sie von der Möglichkeit fasziniert, die Onclick-Attribute der HTML-Elemente zu nutzen.

Die Lösung liegt im von Ihnen verwendeten CSS-Selektor. Um erfolgreich auf die Schaltflächen klicken zu können, müssen Sie die Leerzeichen zwischen den Klassen in Ihrem Selektor entfernen. Hier ist die korrigierte Version:

driver.find_element_by_css_selector('.button.c_button.s_button').click()

Durch das Entfernen der Leerzeichen zwischen den Klassen erkennt Selenium die gewünschten Schaltflächen genau und klickt darauf.

Das obige ist der detaillierte Inhalt vonWie klicke ich mit Python Selenium auf Schaltflächen mit komplexer HTML-Struktur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn