2017-12-12 6 views
0

Ich möchte auf das Element unten in Python Selenium Chrome Web-Treiber klicken.python selen switch_to_frame funktioniert nicht für mich

<a href="javascript: d.o(18);" class="node">Maintenance</a> 

Es funktioniert nach dem Schalter rechten Rahmen.

browser.switch_to_frame("navigation") 
browser.find_element_by_link_text('Maintenance').click() 
browser.find_element_by_link_text('Restore Default Settings').click() 

Aber nach erfolgreichem Klick auf die 'Standardeinstellungen wiederherstellen') neue Seite in Frame 3 angezeigt, so dass den folgenden Code hinzufügen. (Haupt ist Rahmen 3)

browser.switch_to_frame("main") 
browser.find_element_by_name('loadConfig').click() 

Aber dieses Mal habe ich Timeout-Fehler. Es sieht dieses frame3 im Code nicht erkannt aus.

File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until 
    raise TimeoutException(message, screen, stacktrace) 
selenium.common.exceptions.TimeoutException: Message: 

Dies ist die Bildquelle.

<frameset rows="61,*" framespacing="0" border="0" frameborder="0"> 
    <frame name="header" src="/cgi-bin/status_new.asp" marginwidth="0" marginheight="0"> 
    <frameset cols="*,220,780,*" framespacing="0" border="0" frameborder="0"> 
     <frame src="about:blank"> 
     <frame name="navigation" src="/cgi-bin/navigation-left.asp" marginwidth="0" marginheight="0"> 
     <frame name="main" marginwidth="0" marginheight="0" scrolling="auto" src="/cgi-bin/status_deviceinfo.asp"> 
     <frame src="about:blank"> 
    </frameset> 
</frameset> 

Weiß jemand, warum ist das?

Vielen Dank.

+0

Was meinst du mit * funktioniert nicht *? Selektoren scheinen korrekt zu sein. Freigabe Ausnahmeprotokoll – Andersson

+0

Ich meine, es hat tatsächlich nicht mit diesem Selektor geklickt. – user6508956

+0

Sie meinen also, Sie machen einen Klick und nichts ist passiert? Keine Ausnahme, keine Reaktion von der Web-App, oder? – Andersson

Antwort

0

Gemäß der HTML Sie geteilt haben Sie die folgende Codezeile verwenden:

browser.find_element_by_xpath("//a[@class='node' and contains(text(), 'Maintenance')]").click() 
+0

Vielen Dank für die Antwort, aber die folgenden Fehlermeldungen. selen.common.exceptions.NoSuchElementException: Nachricht: kein solches Element: Element kann nicht gefunden werden: {"method": "xpath", "selector": "// a [@ class = 'node' und enthält (text (), 'Maintenance')] "} – user6508956

+0

Kannst du etwas mehr von 'outerHTML' von oben zeigen? – DebanjanB

+0

Bearbeiten Sie die Frage und aktualisieren Sie die 'HTML' bitte – DebanjanB