2012-07-20 34 views
12

Tôi muốn chọn tất cả nội dung bằng cách nhấn Ctrl + a từ bàn phím bằng cách sử dụng WebDriver với Java. Tôi đã viết mã sau:Cách nhấn Ctrl + A để chọn tất cả nội dung trong một trang bằng Selenium WebDriver sử dụng Java

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

Thật không may, nó không hoạt động. Có gì sai trong mã Java WebDriver của tôi?

Trả lời

16

Để Chọn toàn bộ trang:

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

cssSelector nhanh hơn xpath. Vì vậy, nó có thể được thực hiện bằng cách sử dụng CSSPath cũng. Dưới đây là cách:

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

Giải pháp này không hoạt động đối với tôi trong Chrome trên Linux. Điều gì có thể là lý do? – yashaka

+1

Tôi nhận được 'AttributeError: loại đối tượng 'Keys' không có lỗi 'chord'' thuộc tính vì lý do nào đó khi tôi sử dụng hợp âm. Bất kỳ ý tưởng folks? – baltoro

+1

@baltusaj Có lẽ bạn đang sử dụng các phím sai. Bạn cần sử dụng org.openqa.selenium.Keys – Aura

12

Các bạn đã thử cuộc trò chuyện nhóm các Ctrl +Một phím? Đoạn code dưới đây được làm việc trong trường hợp của tôi:

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

có, điều này hoạt động tốt. Tôi đã truy cập www.google.com và tôi đã chọn văn bản của hộp văn bản google là: driver.findElement (By.id ("gbqfq")). SendKeys (Keys.chord (Keys.CONTROL, "a")); Nó hoạt động tốt theo hướng của bạn ... cảm ơn. Tôi muốn chọn toàn bộ trang của google. Làm thế nào tôi có thể làm điều đó? –

+0

Tôi tình cờ gặp câu trả lời cho điều này do một lỗi trong một số thử nghiệm tự động của tôi ... Tôi đã sử dụng bộ chọn CSS đã chọn một phần tử của trang không phải là trường nhập (ví dụ như div) ... khi thử nghiệm đã gửi CTRL + A đến phần tử này, nó đã chọn toàn bộ trang. –

+0

Bổ sung nhận xét trên, Webdriver thường cố gắng mô phỏng người dùng theo cách tốt nhất có thể ... Điều gì đã xảy ra khi nó gửi CTRL + A đến phần tử không phải là đầu vào là điều sẽ xảy ra nếu chúng tôi thực hiện theo cách thủ công (đã nhấp vào bất kỳ đâu trên trang không phải là đầu vào và nhấn CTRL + A). –

Các vấn đề liên quan