2012-07-20 3 views
12

를 사용 셀레늄 WebDriver하여 페이지의 모든 콘텐츠를 선택하려면 Ctrl + A를 누릅니다. 다음 코드를 작성했습니다 :어떻게 자바 WebDriver 사용하여 내가 키보드 + <kbd></kbd><kbd>Ctrl 키</kbd>를 눌러 모든 콘텐츠를 선택합니다 자바

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

+1

'AttributeError : type object '키즈를 사용할 때'키즈 '속성에'code '오류가 없습니다. 어떤 아이디어가 있습니까? – baltoro

+1

@baltusaj 틀린 키를 사용하고 계신 것 같습니다. org.openqa.selenium.Keys를 사용해야합니다. – Aura

12

코드 + 키를 시도 했습니까? 아래 코드는 내 경우에 노력하고 있습니다 :

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

예. 정상적으로 작동합니다. www.google.com을 방문했고 google 텍스트 상자 텍스트를 다음과 같이 선택했습니다. driver.findElement (By.id ("gbqfq")). sendKeys (Keys.chord (Keys.CONTROL, "a")); 그것은 당신의 지시에 따라 잘 작동하고 있습니다 ... 감사합니다. Google의 전체 페이지를 선택하고 싶습니다. 어떻게해야합니까? –

+0

내 자동 테스트의 버그로 인해이 문제에 대한 답을 찾지 못했습니다 ... 입력란이 아닌 페이지의 요소를 선택하는 CSS 선택기를 사용했습니다 (예 : div) ... 테스트에서 CTRL + A를이 요소로 보내면 페이지 전체가 선택되었습니다. –

+0

Webdriver는 위의 주석을 보완하기 위해 일반적으로 가능한 최선의 방법으로 사용자를 에뮬레이션하려고 시도합니다. 입력이 아닌 요소에 Ctrl + A를 보냈을 때 어떤 일이 발생했는지는 수동으로 수행하면 어떻게됩니까? 입력되지 않았으며 CTRL + A를 누른 페이지의 아무 곳이나 클릭). –