2016-09-22 1 views
1

RF 및 Selenium2Library에 대한 키워드를 만들었습니다. 요소가 나타날 것으로 예상되는 영역을 갱신 할 다른 요소를 주기적으로 클릭하여 일부 요소를 기다려야합니다. 우편함에있는 우편물을 기다리는 예를 들어 그것을 사용합니다.Robotframework : 루프에서 web-elemnt를 클릭하면 종종 요소를 찾지 못합니다.

문제는 "반복 요소"를 찾을 수 없으며 일부 반복 반복에서 클릭 할 수 있지만 스크린 샷에 존재한다는 것입니다. 왜 그런 일이 일어날 수 있니?

def check_if_element_appeared(self, element_locator, renew_locator, renew_interval=10, wait_interval=300):   
    if not self.is_visible(renew_locator): 
     raise AssertionError("Error Message") 
    start_time=int(time()) 
    scan_time = start_time 
    if not self.is_visible(element_locator): 
     while int(time())<=start_time+wait_interval: 
      if int(time()) >= scan_time + renew_interval: 
       scan_time = int(time()) 
       self.click_element(renew_locator) 
       if self.is_visible(element_locator): 
        break 
     if not self.is_visible(element_locator): 
      raise AssertionError("Error Message") 
     self._info("Message") 
    else: 
     self._info("Current page contains element '%s'." % element_locator) 

답변

0

는 키워드 Wait Until Page Contains Element 또는 이러한 목적을 위해 Selenium2LibraryWait Until Element Is Visible를 사용하면 안

*** Test cases *** 
Your Test Case 
    Prerequisite steps 
    Wait Until Page Contains Element ${locator} 
    Succeeding steps 

편집 : 아래는 파이썬 코드가 순수 로봇 구문처럼 보일 수 있습니다 것입니다.

${iteration}= Evaluate ${wait_interval}/${renew_interval} 
: FOR ${i} IN RANGE 0 ${iteration} 
\ Click Element ${renew_locator} 
\ Sleep 1 
\ ${is_visible}= Run Keyword And Return Status Element Should Be Visible ${element_locator} 
\ Exit For Loop If ${is_visible} 
\ Run Keyword If '${is_visible}' == 'False' Sleep ${renew_interval} 
Click Element ${element_locator} 
+0

필자의 경우. 보기를 새로 고치려면 요소를 클릭해야합니다. 이메일 활동을 할 때 일반적인 활동. –

+0

코드가 업데이트되었습니다. 아마도 당신은 순수한 로봇 접근법을 사용해 볼 수 있습니다. – MervS