2012-07-20 93 views
12

選擇由硒webdriver的頁面中所有的內容我想從鍵盤按下Ctrl鍵+一個選擇所有內容通過使用webdriver的與Java。我寫了下面的代碼:如何按Ctrl + A使用Java

Actions actionObj = new Actions(driver); 
actionObj.keyDown(Keys.CONTROL) 
     .sendKeys(Keys.chord("A")) 
     .keyUp(Keys.CONTROL) 
     .perform(); 

不幸的是,它沒有工作。我的WebDriver Java代碼有什麼問題?

回答

16

選擇整頁:

driver.findElement(By.xpath("//body")).sendKeys(Keys.chord(Keys.CONTROL, "a")); 

cssSelector比XPath的更快。所以也可以通過使用CSSPath來完成。以下是方法:

driver.findElement(By.cssSelector("body")).sendKeys(Keys.chord(Keys.CONTROL, "a")); 
+3

此解決方案在Linux上的Chrome上不適用於我。可能是什麼原因? – yashaka 2013-08-19 17:11:40

+1

我得到'AttributeError:鍵入對象由於某些原因,'Keys'沒有屬性'chord''錯誤當我使用和絃時。任何想法的人? – baltoro 2015-07-04 22:35:18

+1

@baltusaj您可能使用了錯誤的Keys。您需要使用org.openqa.selenium.Keys – Aura 2015-09-02 15:49:41

12

你試過和絃Ctrl + A鍵?下面的代碼工作在我的情況:

element.sendKeys(Keys.chord(Keys.CONTROL, "a")); 
+0

是的,這很好。我訪問了www.google.com並選擇了google文本框的文本:driver.findElement(By.id(「gbqfq」))。sendKeys(Keys.chord(Keys.CONTROL,「a」));根據你的方向,它工作得很好......謝謝。我想選擇整個谷歌的網頁。我怎樣才能做到這一點? – 2012-07-23 05:07:16

+0

由於我的一些自動化測試中的錯誤,我偶然發現了這個問題的答案......我使用了一個CSS選擇器,最終選擇了不是輸入字段的頁面元素(例如div) ...當測試發送CTRL + A到這個元素時,它最終選擇了整個頁面。 – 2012-07-25 15:24:44

+0

補充上面的評論,Webdriver通常會嘗試以最好的方式模擬用戶......當它發送CTRL + A到一個不是輸入的元素時會發生什麼,如果我們手動執行它會發生什麼點擊頁面中不是輸入的任何地方,然後按下CTRL + A)。 – 2012-07-25 15:27:17

相關問題