2017-02-15 1 views
0

Ich plane, Tastaturkurzbefehle zu verwenden, um chromedriver zu fahren; obwohl ich kein passendes Beispiel finde.Key Stroke zu Chromedriver senden, mit Selen Python

Ich lade Chromtreiber als driver.remote Objekt in Selen Python; damit ich auf die Elemente zugreifen kann, und bis jetzt funktioniert es gut; Ich kann Schlüssel an ein Element senden.

Obwohl ich nicht sehe, wie Sie tatsächlich Browser-Verknüpfungen senden können; Die driver.remote hat keine sendkey-Funktion; nur die Elemente haben es.

Also, wenn ich eine Menüverknüpfung öffnen möchte, um eine Aktion zu tun, kann ich nicht. Gibt es einen Weg dazu, oder ist Selenium per se nicht in Reichweite?

+0

AFAIK, können Sie keine Tasten-Kombinationen mit 'chromedriver' verwenden. Was genau willst du machen? Welche Abkürzungen? – Andersson

+0

Versuchen, ein neues Fenster zu öffnen, neue Registerkarte, Seite speichern, Seite laden. Ich habe versucht, diese Tastenkombination mit "Körper" ausgewählt zu senden, aber selbst in diesem Fall erhält die Anwendung den Befehl nicht. Ich kann nur Text an das Textfeld auf der Webseite selbst senden, nicht an den Browser –

+0

'Seite speichern' Sie meinen" HTML "Seitenquelle speichern? – Andersson

Antwort

0

Sie können keine Tastenkombinationen mit chromedriver verwenden, aber Sie können einige Ansätze versuchen erforderlichen Aktionen auszuführen:

from selenium import webdriver 

driver = webdriver.Chrome() 
driver.get('/path/to/your/local/file.html') # To load page 
with open('/path/to/your/local/file.html', 'w') as f: 
    f.write(driver.page_source) # To save currently opened page HTML source code to local file 
driver.execute_script('window.open('https://google.com', 'new');') # To open Google page in new tab/window 
+0

Danke; dies löst meine Lade- und Speicherdatei; obwohl ich auf die anderen Funktionalitäten der Browser App nicht zugreifen kann. Es ist für mich merkwürdig, dass Selenium den Arbeitsbereich nie auf den Container ausgeweitet hat, auf dem die Webseite tatsächlich läuft. Es gibt natürlich andere Möglichkeiten; wie einen Unterprozess zu öffnen und die Tastenkombination über die Shell aufzurufen (ich bin auf OSX); aber es ist nicht dasselbe wie nur den webdriver aufzurufen. Danke für die Antwort! –

Verwandte Themen