을 식별하려고 할 때 예외를 시간을 얻기 코드입니다 :이 webelemnt 아래
WebElement Username=d1.findElement(By.xpath("//*[@id='username']"));
Username.sendKeys("aadmin");
WebElement Password=d1.findElement(By.xpath("//*[@id='login_form']/tbody/tr/td/table/tbody/tr[12]/td[2]/input"));
Password.sendKeys("admin");
WebElement signin=d1.findElement(By.xpath("//*[@id='submit_']"));
signin.click();
System.out.println("User admin has logged in "+ d1.getTitle());
w1.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='spaces-menu']/ul/li[1]"))).click();
System.out.println("User Admin clicks on Record button");
//Thread.sleep(5000);
d1.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Switching the control
int size2=d1.findElements(By.tagName("iframe")).size();
System.out.println("iframe size is---" + size2);
WebDriverWait w2= new WebDriverWait (d1, 15);
//w2.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(0));
w2.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.tagName("iframe")));
System.out.println("Page title is "+d1.getTitle());
//d1.switchTo().frame("iframe-page-container");
//d1.switchTo().frame(d1.findElement(By.tagName("iframe")));
WebDriverWait w3= new WebDriverWait (d1,30);
WebElement New=w3.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='capTypePopup']")));
//WebElement New=w3.until(ExpectedConditions.visibilityOfElementLocated(By.className("menu-middle-normal-button")));
//WebElement New=w3.until(ExpectedConditions.visibilityOfElementLocated(By.id("menuButtonContain-6")));
//New.click();
//d1.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//JavascriptExecutor js = (JavascriptExecutor) d1;
//WebElement element = d1.findElement(By.id("menuButtonContain-6"));
//js.executeScript("arguments[0].setAttribute('type', '')",element);
//System.out.println(d1.findElement(By.id("menuButtonContain-6")).getAttribute("value"));
//Actions a1= new Actions(d1);
//a1.moveToElement(New).click(New).build().perform();
//d1.findElement(By.xpath("//*[@id='tr_menubar']/td"));
//d1.findElement(By.xpath("//*[@id='capTypePopup']")).click();
//w1.until(ExpectedConditions.elementToBeClickable(By.className("portlet-menu-item"))).click();
//w2.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='capTypePopup']/font"))).click();
System.out.println("Click on the new button");
아래는 페이지의 DOM이다, 나는 새로운 버튼을 클릭하는 것을 시도하고있는 iframe을 내부.
이 오류 메시지는 도움을 청하고 제안합니다. By.xpath에있는 요소의 가시성을 기다리는 30 초 후 시간 초과되었습니다. // div [@ id = 'capTypePopup'] 빌드 정보 : 버전 : '2.53.0', 수정 : '35ae25b', 시간 : '2016-03-15 16:57:40' 시스템 정보 : 호스트 : 'SandeepLT02', ip : '10 .4.224.42 ', os.name :'Windows 10 ', os.arch :'amd64 ', os.version : '10 .0', java.version : '1.8.0_144' 드라이버 정보 : org.openqa.selenium.ie.InternetExplorerDriver –
그래도 오류가 발생합니까? 명시 적으로 프레임 d1.switchTo(). 프레임 (d1.findElement (By.tagName ("iframe")))); 을 입력 한 다음 작업을 수행하십시오. 단계별로 디버깅을하더라도 오류가 발생합니까? 기다림이나 다른 문제가있는 경우 좁힐 수 있습니다. –
xpath가 정확하지 않습니다. xpath가 여러 요소를 찾습니다. 난 당신이 요소에 대한 더 많은 xpath를 찾아야한다고 제안 할 것입니다 – iamsankalp89