2013-08-23 42 views
2

是否可以執行CtrlP點擊Geb?我試了一下這樣的,但我希望它不工作:Geb - 執行Ctrl + P

interact { 
      keyDown(Keys.CONTROL) 
      sendKeys("P") 
      keyUp(Keys.CONTROL) 
} 

回答

1

可以使用的webdriver的Key.chord()方法來發送非字符按鍵:

import org.openqa.selenium.Keys 

$("input", name: "firstName") << Keys.chord(Keys.CONTROL, "P") 

更多信息請參見this section of the manual

+0

我之前閱讀。這個代碼的問題是我需要一個執行按鍵的元素。但在我的應用程序中,我需要執行「CTRL + P」(打印的相同快捷方式),而不關注任何元素。我試過這個:$()<< Keys.chord(Keys.CONTROL,「P」),但它會拋出一個錯誤org.openqa.selenium.WebDriverException:未知錯誤:無法集中元素 –

+0

按鍵處理如何應用程序嗎?事件處理程序是否綁定到文檔的主體?如果是,則嘗試'$('body')<< Keys.chord(Keys.CONTROL,「P」)'。 – erdi

+0

@erdi,您如何使用Chrome驅動程序來打開「打印預覽」頁面?我不相信這是真的可能,因爲它是一個瀏覽器快捷鍵(Ctrl + P)。有關如何實現這一點的任何提示?目標是進入打印視圖,所以我可以提取鏈接到生成的PDF(https://code.google.com/p/chromedriver/issues/detail?id=19),並下載它。 –

0

希望你可以使用互動..

import org.openqa.selenium.Keys 
interact { 
keyDown(Keys.CONTROL) 
keyDown(Keys.P) 
}