2014-06-05 2 views
0

나는 지난 이틀 동안 정말로 붙어 있습니다. 나는 하위 메뉴를 클릭하려고 내가 하위 메뉴를 클릭 할 때 내가 코드를 아래에 시도 다음셀레늄 하위 메뉴를 클릭하십시오.

Element not found for the sub menu.

등과 같은 오류를 얻을

WebElement element = driver.findElement(By.id("x-menu-el-P46915788081933044__folderbrowser_PJL")); 
    JavascriptExecutor executor = (JavascriptExecutor)driver; 
    executor.executeScript("arguments[0].click();", element); 

HTML 코드

<li id="x-menu-el-P46915788081933044__folderbrowser_PJL" class="x-menu-list-item"> 
<a id="P46915788081933044__folderbrowser_PJL" class="x-menu-item" href="javascript:var abc = doNothing()" unselectable="on" hidefocus="true"> 
<img id="ext-gen926" class="x-menu-item-icon " src="netmarkets/images/import.gif"> 
<span id="ext-gen927" class="x-menu-item-text">Upload Documents from Compressed  File</span> 

+0

ID가 동적으로 생성되었습니다. 항상 동일합니까? – Fabricator

+0

ID가 동적입니다.이 동적 ID를 클릭하는 방법은 무엇입니까? – Karthik

+0

나는 xpath를 사용하는 것을 선호합니다. // // [li id ​​= "x- 메뉴 - 목록 - 항목 "]'? 또는 크롬을 사용하고 마우스 오른쪽 버튼으로 클릭, 복사 XPA th, 유용한 지 확인하십시오. – Fabricator

답변

0

대신 ID를 사용하는 것이 좋습니다. bably 클래스 이름을 사용하십시오.

WebElement element = driver.findElement(By.ClassName("x-menu-list-item")); 

또는 당신은 당신이 필요로하는 정확한 요소를 반환하는 데 사용할 수있는 당신은 위의 반환 이후 여러 항목을 CSS를 선택

WebElement element = driver.findElement(By.cssSelector("li[class='x-menu-list-item']")); 

를 사용하여 시도 할 수 :

WebElement element = driver.findElement(By.linkText("Upload Documents from Compressed File")); 
+0

클래스는 다른 하위 메뉴와 동일합니다. 작동할까요? 이것은 "/ html/body/div [27]/ul/li [3]/a/span"여전히 no – Karthik

+0

입니다. ClassName과 cssSelector 이름은 다른 하위 메뉴에서도 동일합니다. – Karthik

+0

'driver.findElement (By.LinkText ("Compressed에서 문서 업로드"))는 무엇입니까? – domino

0

1 클릭 메뉴에서 다음 문을 시도하십시오 -

driver.findElement (By.xpath (" // span [contains (text(), '압축 된 문서 업로드]])). 클릭(); . 직접이 시도 -

driver.findElement을 (By.xpath을 ("// 범위는 [(텍스트()를 포함, '압축 업로드 문서')]))) (클릭;

것 같아요 대부분 오류는 위의 dont가 작동하지 않으면 pls가 스크린 샷을 첨부하거나 html 코드의 세부 정보를 제공하므로 단어 사이의 스팬 이름 공백 때문에 발생하므로 더 많은 옵션을 시도 할 수 있도록 최선을 다합니다.

+0

안녕 Sunpat. 그것은 다음과 같은 코드로 작업했습니다. Thread.sleep (5000); WebElement Compress = driver.findElement (By.linkText ("압축 파일에서 문서 업로드")); JavascriptExecutor executor = (JavascriptExecutor) 드라이버; executor.executeScript ("arguments [0] .click();", Compress); 실제 대기가 필요했습니다. 답장을 보내 주셔서 감사합니다. – Karthik

관련 문제