2014-12-04 4 views
-1

menuitem을 클릭 한 후 표시되는 대시 보드를 클릭해야합니다. 또한 menuitem과 대시 보드가 서로 다른 프레임에 있습니다.Java Selenium WebDriver를 사용하여 프레임 내부에있는 동적 div 요소를 클릭하십시오.

<html> 
    <head> 
    <frameset scrolling="no" framespacing="0" marginwidth="0" marginheight="0"  border="0" frameborder="0" rows="98,*"> 
     <frame scrolling="no" noresize="" marginwidth="0" marginheight="0" src="menu.jsp" name="menu"> 
      <script language="JavaScript"> 
      <script type="text/javascript" src="menu7_com.js" language="JavaScript"> 
       <div style="position: absolute; display: block; background-color: black; width: 1080px; height: 18px; z-index: 1101; top: 72px; left: 10px;"> 
       <div style="position: absolute; overflow: hidden; cursor: default; color: rgb(0, 0, 0); font-family: Arial;font-size: 9pt; font-weight: bold; font-style: normal; background-color: rgb(224, 224, 224); text-align:left; width: 110px; height: 16px; padding-left: 10px; padding-top: 2px; left: 0px; top: 0px;"> 
       <div style="position: absolute; overflow: hidden; cursor: default; color: rgb(0, 0, 0); font-family: Arial;   font-size: 9pt; font-weight: bold; font-style: normal; background-color: rgb(224, 224, 224); text-align:   left; width: 110px; height: 16px; padding-left: 10px; padding-top: 2px; left: 120px; top: 0px;"> 
    </div>  
     <frame scrolling="auto" style="scrollbar-base-color:blue;" noresize="" marginwidth="0" marginheight="0" src="Dashboard.do?action=DashBoard" name="display"> 
     <div style="position: absolute; overflow: hidden; cursor: default; color: rgb(0, 0, 0); font-family: Arial;   font-size: 9pt; font-weight: bold; font-style: normal; background-color: rgb(224, 224, 224); text-align:left; width: 110px; height: 16px; padding-left: 10px; padding-top: 2px; left: 120px; top: 0px;"> 
    </div> 
    </frameset> 
</html> 
+1

기본적으로 보이지 않는 요소는 클릭 할 수 없습니다. 지금까지 가지고있는 사이트와 코드에 대한 링크를 공유 할 수 있습니까? 감사. – alecxe

+1

메뉴 항목부터 시작하여 더 많은 HTML 코드 스 니펫을 클릭하려는 요소로 공유하십시오. – Subh

답변

0

'부모 구역 태그'를 클릭해야 표시됩니다. 먼저 부모 div 요소로 마우스를 이동 한 다음 자식을 클릭해야합니다. Action 클래스를 사용하여 상위 요소로 이동 한 다음 하위 요소를 클릭 할 수 있습니다. 부모 Div 태그의 Xpath를 얻을 수있는 것과 동일한 방법으로 올바른 Child Path 태그의 Xpath 태그를 포함 시켰습니다.

다음은 동일한 예입니다.

 WebElement Parent_tag= driver.findElement(By.xpath("Xpath of Parent Div Tag")); 
     WebElement Child_tag= driver.findElement(By.xpath("//div(contains(text(),'Create Hierarchy'))")); 
     Actions action = new Actions(driver); 
     action.moveToElement(Parent_tag).click(Child_tag).perform(); 
0

죄송합니다. 제 질문은 약간 잘못되었습니다. 실제로 div의 프레임이 다릅니다. 하지만 그 해결책을 찾았습니다.

driver.switchTo().frame("menu"); 
WebElement MenuOne = driver.findElement(By.xpath("html/body/div[1]/div[1]")); 
MenuOne.click(); 
driver.switchTo().defaultContent(); 
driver.switchTo().frame("display"); 
WebElement Createborrower = driver.findElement(By.xpath("html/body/div[5]/div[3]")); 
Createborrower.click(); 
+0

위의 답변은 두 프레임 사이에서 완벽하게 작동했습니다. –