Selenium - WebDriver无法识别元素,但IDE识别相同的元素

0 java selenium webdriver selenium-ide

我正在Thomson Holidays网站(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);
Run Code Online (Sandbox Code Playgroud)

Yi *_*eng 6

因为它们位于iframe中,所以您需要先切换到iframe.

现有代码中添加了两行,如下所示:

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();
Run Code Online (Sandbox Code Playgroud)