我无法在窗口的iframe之间切换。我想在网页的顶部窗口中选择一个iframe。
页面的链接是: http://way2automation.com/way2auto_jquery/dropdown.php#example-1-tab-1
我可以找到两个iframe,但无法切换到iframe。每个iframe都有自己的下拉列表,我需要从中选择元素。
我尝试过使用driver.switchto()但它无法识别iframe。
我的代码是:
public void SimpleDropDown() throws InterruptedException {
dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// dr.findElement(By.xpath("//a[text()='Select Country']")).click();
// dr.switchTo().frame(dr.findElement(By.xpath("//div[@id='example-1-tab-1']//iframe")));
Select dropdown = new Select(dr.findElement(By.xpath("html/body/select")));
dropdown.selectByVisibleText("India");
System.out.println(dropdown.getFirstSelectedOption().getText());
}
public void comboBox() {
dr.switchTo().frame(2);
dr.findElement(By.xpath("//a[text()='Enter Country']")).click();
Select dropdown = new Select(dr.findElement(By.xpath("//select[@id='combobox']")));
dropdown.selectByVisibleText("Portugal");
答案 0 :(得分:0)
切换到起始索引为0的帧,但不是切换到默认帧,而是应该使用switchTo()。parentFrame(),因为它返回到顶部窗口(仅当您不使用嵌套帧时) )。
答案 1 :(得分:0)
尝试执行此代码。
WebElement iframe = driver.findElement(By.tagName("iframe"));
driver.switchTo().frame(iframe); //Move inside to the frame.
WebElement body = driver.findElement(By.tagName("body"));
body.click();
driver.findElement(By.xpath("//a[text()='Enter Country']")).click();
Select dropdown = new Select(driver.findElement(By.xpath("//select[@id='combobox']")));
dropdown.selectByVisibleText("Portugal");
driver.switchTo().defaultContent(); //Move outside to the frame.
答案 2 :(得分:0)
您的网站在同一页面中显示2 iFrames
。因此,在选择下拉列表之前,您需要切换到frame
,因为您的下拉列表位于iframe
-
driver.switchTo().frame(0);
Select select = new Select(driver.findElement(By.tagName("select")));
select.selectByValue("Angola");
完成选择后,需要使用 -
来显示框架driver.switchTo().defaultContent();
然后导航到另一个标签,然后您的元素再次位于iframe
下,因此需要再次执行相同的操作
driver.findElement(By.xpath("//li/a[text()='Enter Country']")).click();
driver.switchTo().frame(1);
driver.findElement(By.xpath("//span[@class='custom-combobox']/input")).sendKeys("India");
driver.switchTo().defaultContent();