2013-01-05 6 views
0

팝업 링크를 여는 편집 링크가있는 페이지에서 web 요소를 사용하여 반복을 시도하고 있습니다. 열린 팝업에는 간단한 입력 필드와 적용/취소 버튼이 있습니다. 내 스크립트에서 내가 입력 필드에 텍스트를 입력하려면 다음을 수행하십시오Python, Selenium Webdriver : Firefox에서 요소를 볼 수 없습니다.

def enter_text(self, text, action): 
     if self.is_element_present(self._input_locator): 
      self.selenium.find_element(*self._input_locator).send_keys(text) 
     if action == 'Apply': 
      self.selenium.find_element(*self._apply_button_locator).click() 
     elif action == 'Cancel': 
      self.selenium.find_element(*self._cancel_button_locator).click() 

을 내가 크롬에서 내 스크립트를 실행하는 경우 - 모든 것이 잘 작동, 모든 webelements는 발견 및 입력 텍스트 필드에 입력됩니다.

ElementNotVisibleException: Message: u'Element is not currently visible and so may not be interacted with' 

: - 나는 파이어 폭스에서 동일한 스크립트를 실행할 때이 입력 필드와 2 개 버튼 만 텍스트가 오류를 발생시키는 필드에 입력지고 있지 않습니다 (이 Webdriver 볼되었다 의미) 팝업 창을 엽니 다 팝업이 실제로 열리면 (그리고 나는 볼 수 있습니다.) Webdriver가 보이지 않는다고 말하는 이유는 무엇입니까? 또한 몇 가지 잠을 자면 팝업이로드되고 텍스트가 입력되었지만 도움이되지 않습니다.

도움이 될 것입니다.

+0

정의를 추가 할 수 있습니까? 웹 요소의 기능은 무엇입니까? 그들에는 내연이 있는가? 해당되는 경우 내부 스팬을 클릭하십시오. – asgoth

답변

0

두 아이디어 :

1 : HTML은 w3c validator 통해 그것을 실행하여 예, 유효해야합니다. 깨진 HTML은 여러 브라우저에서 서로 다른 동작을 일으키는 일반적인 원인입니다.

2 : 옆으로

for handle in self.selenium.window_handles: 
    # identify popup window's handle somehow 
    self.selenium.switch_to_window(handle) 

, 당신은 selenium.implicitly_wait(3) 건너하지 않은 경우, 그것은 time.sleep의를 피하는 방법으로 죽은 유용 : 당신은 확실히 예 : 사용, 팝업까지 셀레늄을 전환해야 및 대기 구조를위한 ..

0

마녀 Firefox 버전 및 Webdriver 버전을 사용하고 있습니까? 당신이 파이어 폭스 17 ~ 18를 사용하는 경우, (나는 FF12가 작동 추측) 이 버전을 낮추기 위해 다운 그레이드 마지막 버전

    • 업데이트 Webdriver :

      다음을 시도하십시오

      시도해보고 무슨 일이 일어 났는지 알려주세요.

      감사합니다.

  • 관련 문제