0

생성 반응한다. 나는 시도했다 :로봇 프레임 워크 - - 사업부/스팬 클릭 할 수 없습니다 내가 구조의이 종류를 가지고 웹 페이지를 생성 반응 한 웹 페이지

XPath는 : 나는 단지와 함께 .../DIV [2]/DIV의 [사업부 (다른 identificators)에 구조까지에 던지기로 randomtag의 Y의 사업부를 찾을 수 있습니다

  • 1]
  • xpath (.../div [2]/div [1]은 작동하지만 .../div [2]/div [2]가 작동하지 않음)와 함께 두 번째 div를 가져올 수 없음

css :

다음 중 하나도 작동하지 않습니다.

css=div > span[randomtag="z"] 
css=div.x span[randomtag="z"] 

정확한 요소를 선택하려면 여기를 클릭하십시오.

로봇 코드는 기본입니다. 요소가 표시 될 때까지 대기하십시오. locator (그것이 무엇이든간에) 예.

wait until element is visible  css=div.x span[randomtag="z"] 
wait until element is visible  xpath=<previous path here>/div[2]/div[2] 

아이디어가 있으십니까? 이것에 대한 반응 이유는 무엇입니까?

"요소가 x 초 내에 표시되지 않음"이 표시됩니다. 타임 아웃을 위해 나는 5 ~ 30 초를 시도했다.

편집 :

는 또한 (브라우저 개발 도구 뒤) 검색 도구를 사용하여 XPath를 찾기 위해 노력하고 내가 검색에 XPath는 또는 CSS 로케이터 중 하나를 삽입 할 때이 요소를 찾습니다.

+0

을 여기에 무엇을 달성하고자하는? 'randomtag = 'y'의 div를 'z'요소로 식별하려고합니까? – Paras

+0

Robot이 div (parentt randomtag = z) 또는 span 자체 (randomtag = z) 중 하나를 찾으려고합니다. 최종 목표는 "요소 클릭"명령으로 로봇을 클릭 할 수 있도록 로봇을 배치하는 것입니다. – Porris

+0

'// span [@ randomtag = 'z']/..'randomtag = z '의 부모 div를 줄 것입니다. – Paras

답변

0
public static void waitUntilElementIsVisible(WebElement element, WebDriver driver) 
{   
    FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver); 
    wait.pollingEvery(250, TimeUnit.MILLISECONDS); 
    wait.withTimeout(2, TimeUnit.MINUTES); 
    wait.ignoring(ElementNotVisibleException.class); //make sure that this exception is ignored 
    Function<WebDriver, WebElement> function = new Function<WebDriver, WebElement>() 
      { 
       public WebElement apply(WebDriver driver) { 
        System.out.println("Checking for the element!!");      
        if(element.isDisplayed() != true) 
        { 
         System.out.println("Target element is not visible"); 
        } 
        return element; 
       } 
      }; 

    wait.until(function); 
} 

다음이 전화 :

WebDriver el = driver.FindElement(By.css("yourcss")); 
waitUntilElementIsVisible(el, driver);