2012-02-08 29 views
7

Tôi có một hộp văn bản trong đó khi tôi nhập một chữ cái nói 's', nó sẽ hiển thị một danh sách các kết quả (như tìm kiếm google).Kiểm tra tự động hoàn tất bằng trình điều khiển web Selenium

Tôi đang sử dụng trình quản trị web selen mới nhất với java.

Tôi đã thử

sendKeys("s"), 

JavascriptLibrary jsLib = new JavascriptLibrary(); 

jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onkeyup"); 

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onblur"); 

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onclick"); 

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onmouseup"); 


driver.findElement(By.id("assetTitle")).sendKeys(Keys.ENTER); 

Không ai trong số những công việc thậm chí sau khi thêm chờ đợi sau khi từng bước.

Mọi đề xuất?

Cảm ơn.

Cập nhật: -

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.google.com"); 
    WebElement query = driver.findElement(By.name("q")); 
    query.sendKeys("s"); 
driver.findElement(By.xpath("//table[@class='gssb_m']/tbody/tr/td/div/table/tbody/tr/td/span")).click(); 
    driver.findElement(By.name("btnG")).click(); 

Cập nhật 2: -

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.kayak.com/"); 
    WebElement query = driver.findElement(By.name("destination")); 
    query.sendKeys("s"); 

Cập nhật 3: - Tôi đã thử với Selenium 1 và phương pháp fireevent hoạt động bằng cách truyền tham số như 'KeyDown'. Đây sẽ là giải pháp tạm thời cho bây giờ.

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.kayak.com/"); 
    DefaultSelenium sel = new WebDriverBackedSelenium(driver,"http://www.kayak.com/"); 

    sel.type("//input[@id='destination']", "s"); 
    sel.fireEvent("//input[@id='destination']", "keydown"); 
+0

Bạn có thể cập nhật câu hỏi của mình bằng mã ví dụ hoạt động với trường tìm kiếm của Google không? – djangofan

+0

Tôi đã thêm mã tìm kiếm mẫu của Google. Mặc dù bước cuối cùng không bắt buộc vì Google tự động mang lại kết quả tìm kiếm. Nhưng nếu bạn thử dùng kayak.com thì mã tương tự sẽ không hoạt động để tìm kiếm các sân bay. – user1198308

+0

Mẫu Kayak được thêm vào. Bằng cách gửi key 's', chúng ta sẽ thấy các sân bay bắt đầu bằng chữ S. – user1198308

Trả lời

0

Đây phải là giải pháp tạm thời cho bây giờ.

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.kayak.com/"); 
    DefaultSelenium sel = new WebDriverBackedSelenium(driver,"http://www.kayak.com/"); 

    sel.type("//input[@id='destination']", "s"); 
    sel.fireEvent("//input[@id='destination']", "keydown"); 
1

Tôi tin rằng bạn đang thử nghiệm tính năng tự động gợi ý ở đây (không tự động hoàn tất)

bước tôi làm theo -

  1. Nhập điều gì đó trong lĩnh vực đầu vào
  2. Bấm vào gợi ý bạn muốn chọn. (Bạn có thể tìm thấy xpath bằng cách sử dụng một số công cụ như Firebug với Firepath, Chrome, v.v.)
  3. Xác minh văn bản trong trường nhập giống như mong đợi.
2

Tôi đã tìm thấy cách giải quyết khác. Vấn đề của tôi là:

  1. Selenium đầu vào 'Mandaluyong' đến một lĩnh vực vị trí tự động gợi ý
  2. Các tính năng tự động gợi ý lĩnh vực xuất hiện cùng với sự lựa chọn phù hợp
  3. Sau đó selen trái trình đơn thả xuống tự động đề nghị mở không chọn tùy chọn phù hợp.

Những gì tôi đã làm là:

 driver.findElement(By.name("fromLocation")).sendKeys("Mandaluyong"); 
     driver.findElement(By.name("fromLocation")).sendKeys(Keys.TAB); 

này bởi vì trên một thử nghiệm sử dụng, khi tôi cố gắng nhấn phím TAB, có hai điều đã được thực hiện bởi hệ thống:

  1. Picks sự tùy chọn được so khớp từ menu thả xuống tự động đề xuất
  2. Đóng trình đơn thả xuống tự động đề xuất

Hy vọng điều này sẽ hữu ích.

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