2009-12-23 6 views
0

제 셀 테스트를 위해 C#에서 셀렌과 함께이 코드를 작성했습니다.Selenium keypress esc가 FireFox에서 작동하지 않습니다.

private const string XPathToolTipStyle = "//form[@action='search.aspx'] //div[@id='searchToolTip']/@style"; 

private bool IsToolTipOpen() 
     { 
      var tempToolTip = selenium.GetAttribute(XPathToolTipStyle); 
      return !(tempToolTip).ToLower().Contains("display: none;"); 
     } 

[Test] 
     public void PressEscAndCloseClosingKeys() 
     { 
      writeSomethingInTheInputBox(); 
      Assert.That(IsToolTipOpen()); 
      selenium.KeyPressNative("27"); //press esc 
      Assert.That(!IsToolTipOpen()); 
     } 

문제가 Internet Explorer에서 제대로 작동하지만, 파이어 폭스에서 그것의 무한 루프에 간다 : 특히 나는 툴팁 윈도우가 제대로 표시되고 esc 키를 누른 후에는 사라 테스트 해요 IsToolTipOpen()은 whitout을 끝내고 값을 반환합니다. 난 그냥 keyDown, KeyPress 등을 사용하려고했는데 ...하지만 그것은 작동하지 않습니다. 감사합니다.

답변

1

사용중인 XPath를 무한 루프에 넣고 있습니다. 나는 DIV

private const string XPathToolTipStyle = "//form[@action='search.aspx']/div[@id='searchToolTip']/@style"; 

나는 그것이 내가 생각하지 않는다

  1. 입니다 변경 제안 이유의 앞에 //form//div와 슬래시 중 하나 사이의 공간을 제거하는 것입니다 그 유효한 xpath
  2. //은 전체 문서를 검색하도록 Xpath에 지시하고 양식을 검색 한 다음 div를 검색하기 위해 다시 시작하므로 wierd 무한 루프로 이동합니다.

IE 테스트가 더 빨리 실행될 수 있기 때문에 Selenium이 CSS 셀렉터를 사용할 수 있다는 것을 기억하십시오.

관련 문제