2017-06-20 1 views
1

Führen Sie die folgenden Schritte aus:Tastenanschläge mit Google Chrome/Firefox und Selen nicht in Python arbeiten

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

# Get web driver going 
cp = webdriver.ChromeOptions() 
cp.add_argument("--browser.download.folderList=2") 
cp.add_argument("--browser.helperApps.neverAsk.saveToDisk=image/jpg") 
cp.add_argument("--browser.helperApps.neverAsk.saveToDisk=image/png") 
cp.add_argument("--browser.download.dir=~/Downloads/") 
driver = webdriver.Chrome(chrome_options=cp) 

driver.get("http://www.google.com") 
# Try to open a new tab 
driver.find_element_by_tag_name("body").send_keys(Keys.CONTROL, 't') 

Dies war ein Versuch, einen neuen Tab zu öffnen, aber der Code funktioniert nicht. Dies ist auch der Fall, wenn Sie versuchen, Firefox zu verwenden. Für Firefox funktioniert diese funktioniert Arbeit, wenn ich das Profil nicht ändern (mit entsprechenden Code), aber nicht mit einem benutzerdefinierten Profil funktioniert.

Ich würde auch Ctrl+S gerne in der Lage sein zu senden, aber es scheint keine Befehle ein Sonderzeichen Arbeiten mit (obwohl ich immer noch send_keys normaler Text, nicht spezielle Tasten wie Ctrl beteiligt).

Was kann ich tun, um zu sein Ctrl+T und Ctrl+S (besonders letztere) schicken?

Antwort

0

Sie können die Aktionskette wie unten angegeben verwenden.

ActionChains(driver).key_down(Keys.CONTROL).send_keys('s').key_up(Keys.CONTROL).perform() 
+0

Dies funktioniert nicht, um 'Strg + S' (wie Ihre Lösung) oder' Strg + T' zu simulieren. – cgmil