Как переключаться между iframes в selenium webdriver
Привет,
Я новичок в selenium и пытаюсь научиться работе с iframe. Работая с демо-сайтом, я столкнулся с проблемой переключения кадров.
сайт: Только тестирование: iframe1[^] .
Показ ошибки выглядит следующим образом:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"name","selector":"fname"}
Я хотел бы знать различные способы переключения между кадрами, пожалуйста, помогите мне.
Что я уже пробовал:
ublic class DragAndDrop { WebDriver driver; @Test public void function() throws InterruptedException{ //System.setProperty("webdriver.gecko.driver", "./lib/geckodriver.exe"); String driverPath = "F:\\EclipseWorkspace\\lib_Treesa\\"; System.setProperty("webdriver.chrome.driver", driverPath + "chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--start-maximized"); driver = new ChromeDriver(options); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.navigate().to("http://only-testing-blog.blogspot.in/2015/01/iframe1.html"); int size = driver.findElements(By.tagName("iframe")).size();//<<Calculates the number of inline frames in webpage> System.out.println("total frames"+size);
driver.switchTo().frame("frame1"); driver.findElement(By.xpath(".//*[@id='post-body-3107268830657760720']/div[1]/table/tbody/tr[1]/td[1]/input")).click(); driver.findElement(By.xpath(".//*[@id='post-body-3107268830657760720']/div[1]/table/tbody/tr[2]/td[2]/input")).click(); driver.findElement(By.xpath(".//*[@id='post-body-3107268830657760720']/div[1]/table/tbody/tr[3]/td[1]/input")).click(); driver.findElement(By.xpath(".//*[@id='post-body-3107268830657760720']/div[1]/table/tbody/tr[4]/td[2]/input")).click(); driver.findElement(By.xpath(".//*[@id='post-body-3107268830657760720']/div[1]/table/tbody/tr[5]/td[1]/input")).click();
driver.switchTo().frame("frame2");
driver.findElement(By.name("fname")).sendKeys("RAM"); System.out.println("2222222222222222222"); //Thread.sleep(100); driver.findElement(By.id("text3")).sendKeys("GOPAL"); //Thread.sleep(100); driver.findElement(By.id("check3")).click(); //Thread.sleep(300); driver.findElement(By.id("radio2")).click(); driver.findElement(By.xpath(".//*[@id='post-body-4292417847084983089']/div[1]/form[1]/input[10]")).click(); WebElement fileInput = driver.findElement(By.name("uploadfile")); fileInput.sendKeys("C:/path/to/file.jpg");