0

私は Thomson Holidays の Web サイト ( http://www.thomson.co.uk/holidays.html )でサンプル課題に取り組んでいます。左側に休日検索パネルがあります。WebDriver でこれらの要素を認識できません。ただし、IDE ではこれらの要素が認識されます。このような問題が発生したのは初めてなので、これに関する詳細情報が必要です。以下はコードサンプルです。

WebDriver driver = new FirefoxDriver();     
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.thomson.co.uk/holidays.html");

driver.findElement(By.id("searchbutton")).click();


driver.findElement(By.id("holidayAttribute_1")).click();
driver.findElement(By.id("holidayAttribute_2")).click();
driver.findElement(By.id("holidayAttribute_3")).click();

Thread.sleep(5000);
4

2 に答える 2

6

それらは iframe 内にあるため、最初に iframe に切り替える必要があります。

次のように、既存のコードに 2 行追加します。

WebDriver driver = new FirefoxDriver();     
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.thomson.co.uk/holidays.html");

// optional, unnecessary in your case
// driver.switchTo().defaultContent(); // make sure outside of all iframes

// switch to search frame
WebElement searchFrame = driver.findElement(By.cssSelector("iframe[src='/thomson/page/byo/search/usp.page']"));
driver.switchTo().frame(searchFrame);

driver.findElement(By.id("searchbutton")).click();
driver.findElement(By.id("holidayAttribute_1")).click();
driver.findElement(By.id("holidayAttribute_2")).click();
driver.findElement(By.id("holidayAttribute_3")).click();
于 2013-05-02T07:26:14.577 に答える
0

検索パネルは iframe 内にあります。iframe は最初の iframe であるため、以下のコードを使用できます。

    driver.get("http://www.thomson.co.uk/holidays.html");

    // switch to search frame
    driver.switchTo().frame(0);

    driver.findElement(By.id("searchbutton")).click();
    driver.findElement(By.id("holidayAttribute_1")).click();
    driver.findElement(By.id("holidayAttribute_2")).click();
    driver.findElement(By.id("holidayAttribute_3")).click();
于 2013-05-02T08:19:05.227 に答える