2012-02-08 22 views
7

私は「s」という1文字を入力すると、結果のリスト(google検索など)が表示されるテキストボックスがあります。Selenium webdriverでテストオートコンプリート

私は、javaを使用して最新のselenium webdriverを使用しています。

私も各ステップの後に待機を追加した後にこれらの作業の

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); 

なしを試していません。

提案がありますか?

ありがとうございました。

更新: -

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(); 

アップデート2: -

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

更新3 - Iセレン1と試み、fireevent方法は、 'のKeyDown' などのパラメータを渡すことによって動作します。これは一時的な回避策になります。

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

質問をGoogle検索フィールドで動作するサンプルコードで更新できますか? – djangofan

+0

サンプルのGoogle検索コードを追加しました。 Googleは自動的に検索結果を表示するため、最後のステップは不要ですがしかし、kayak.comを試してみると、同様のコードは空港を検索するためには機能しません。 – user1198308

+0

カヤックサンプルが追加されました。キー 's'を送ることで、空港は文字Sで始まるはずです。 – user1198308

答えて

0

これは一時的な回避策です。

私はあなたが私は従わ(ないオートコンプリート)ここでは、自動提案

手順をテストしていると信じて

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

-

  1. あなたは提案に入力フィールドに何か
  2. クリックを入力します選択したい。 (FirepathとFirebug、Chromeなどのツールを使ってxpathを見つけることができます)
  3. 入力フィールドのテキストが期待どおりであることを確認してください。
2

これについての回避策が見つかりました。私の問題は:

  • フィールドが次にセレンが開いて自動提案ドロップダウンを左
  • マッチしたオプションと一緒に表示され、自動示唆自動示唆ロケーションフィールドに「マンダルヨン」が入力
    1. セレン一致したオプションを選択しません。私が何をしたか

    た:

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

    私はTABキーを押ししようとすると、手動テストに、二つのことがシステムによって行われたためです:ピック

    1. 自動提案のドロップダウンから一致したオプションを選択します
    2. 自動候補のドロップダウンを閉じます

    これが役立つことを願っています。

  • 関連する問題