セレンを使用してGoogle検索のajaxデータを処理する方法(Google検索で文字列を入力し、Enterキーを押して検索テキストボックスで一致する文字列データを確認しないでください)?Selenium RC/Webdriver を使用してこのデータを取得するには?
2 に答える
イベントのアクション (sendKeys、onClick など) が何らかのイベント (Ajax リクエストなど) をトリガーすることがわかっている場合は、条件が満たされるまで waitFor を使用する必要があります ( Advanced Usageガイドを参照)。
テストで脆弱なタイムアウトしきい値を指定しないようにするために、Poll 実装でこれを呼び出し、たとえば 500ms ごとに 10 回呼び出し、それに応じて合格/不合格にすることができます。
FitLibraryWeb には、このためのきれいな抽象化がいくつかありますが、もちろん Fitnesse を使用する必要があります
友人に感謝..Firefoxドライバーを使用して、セレンのサンプルコードからGoogle検索を実行できます:http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example
今、検索結果を取得した後、左側のペインで利用可能な「場所の変更」をクリックしようとしていますが、うまくいきません。コードサンプル:
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Cheese!");
element.submit();
WebElement expandLocation = driver.findElement(By.id("expand_location_link"));
expandLocation.click();
デバッグ情報: ビュー ソースでは要素 expand_location_link を表示できませんが、Firefox/Chrome の要素検査セクションで、またはブラウザーからローカル システムにページを保存した後に表示されます。