2016-08-03 2 views
2

Java로 Selenium Webdriver를 사용하여 요소 (텍스트 상자)를 식별하려고합니다. 하지만, 그것은 내게 요소 예외를 찾을 수 없습니다.. 요소의 id는 변경되지 않습니다. 여기에 HTML 코드는 다음과 같습니다"main"스레드에서 예외가 발생했습니다. org.openqa.selenium.NoSuchElementException : 요소를 찾을 수 없습니다.

<div> 
    <table id="searchIdText"> 
     <tbody> 
      <tr id="searchIdText-inputRow"> 
       <td id="searchIdText-labelCell"><label 
        id="searchIdText-labelEl"> Search By Id <span 
         role="separator">:</span> 
       </label></td> 
       <td id="searchIdText-bodyEl"><input id="searchIdText-inputEl" 
        type="text" autocomplete="off" name="searchIdText-inputEl" size="1" 
        role="textbox" style="width: 100%; height: 20px;" /></td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

나는 ID searchIdText-inputEl와 텍스트 상자입니다 원하는 요소를.

driver.findElement(By.xpath(".//*[@id='searchIdText-inputEl']")); 

driver.findElement(By.name("searchIdText-inputEl"))` 

뿐만 아니라 : 나는 시도

driver.findElement(By.id("searchIdText-inputEl")); 

을하지만 그들 중 누구도 작동되지 않습니다. 나는 기다림과 Thread.sleep도 시도했다. 그들 중 누구도 일하고 ​​있지 않습니다. 또한 HTML 코드를 변경하는 것은 옵션이 아닙니다. 이것들을 제외한 모든 제안은 환영합니다. 감사합니다!

자바 코드 스 니펫은 다음과 같습니다. 절망적 인 방법으로, Explicit Wait와 Thread.sleep을 둘 다 추가하여 결과를 개별적으로 제공하지 못했습니다. 그러나 그것은 여전히 ​​쓸모가 없었습니다.

WebDriver driver = new FirefoxDriver(); 
WebElement element = null; 
WebDriverWait wait = new WebDriverWait(driver, 30); 
driver.get(url); 
Thread.sleep(60000); 
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='searchIdText-inputEl']")); 
element.sendKeys("ABC"); 
+0

페이지가로드되는 즉시 요소가 표시됩니까? 조금 더 많은 컨텍스트를 제공하기 위해 현재 Java 코드를 게시 할 수 있습니까? – Josh

+0

Java 코드 단편을 편집하고 추가했습니다. –

+0

감사합니다. 페이지 로딩을 볼 수 있습니까? 요소가 표시됩니까? – Josh

답변

0

iFrame이 숨겨져 있고 페이지로드시 어떻게 든 컨트롤이 iFrame으로 전송되었습니다. 나는 그것을 바꿨고 지금은 잘 동작한다.

관련 문제