2012-09-26 2 views
1

내 테스트의 일부로 특수 문자 ("(PT 서적)"문자열을 입력해야합니다. 내가 테스트를 실행하면, "(" 웹 응용 프로그램입니다.웹 드라이버가 특수 문자를 건너 뜁니다. "("및 "&"문자를 사용하여 sendkeys

입니다 항상. ")" 아무 문제가 없습니다. 생략 나는 그것을 조사하기 시작하고 shift key("[email protected]#$%^&*()_+{}|:<>?") 버튼을 눌렀을 항상 생략 것을 찾을 수 필요로하는 모든 특수 문자를 시도 "(""&". Google 검색 창에서도 같은 테스트를 시도했는데이 경우 모든 문자가 표시되었습니다.

Selenium Web driver (2.25.0) + Java + Firefox (15.0.1)를 사용하고 있습니다. 나는 또한 setEnableNativeEvents을 내 파이어 폭스 프로필에서 false로 설정했습니다.

또한 인터넷 익스플로러를 사용하여이 방법을 시도했지만 정상적으로 작동합니다. 대부분의 테스트가 파이어 폭스에서 실행되므로 파이어 폭스에 충실하고 싶습니다.

"(""&"이 웹 응용 프로그램에 표시되지 않는 이유는 무엇입니까? 여기

내가

FirefoxProfile profile = new FirefoxProfile(); 
profile.setEnableNativeEvents(false); 
WebDriver driver = new FirefoxDriver(profile); 

String searchTerm = "[email protected]#$%^&*()_+{}|:<>?" ; 

String Link = "http://" ; 

driver.get("http://www.google.com"); 
driver.findElement(By. id("gbqfq")).sendKeys(searchTerm); 

driver.get(Link); 
driver.findElement(By. id("ctl00_ctl00_FindField_FindField_ctl00_findFieldLinks_basic")).click(); 
driver.findElement(By. id(UIMapping.SearchBoxId)).sendKeys(searchTerm); 
+0

URL 만 코더로 인코딩 해 보았습니까? – dngfng

+0

URLEncoder 및 Decoder를 시도했지만 작동하지 않았습니다. – user1694733

답변

0

가 나는 또한 동일한 문제에 직면 사용하고있는 코드입니다. 이것에 대한 간단한 해결 방법이 있는데, 이는 제가 찾고있는 해결책이 아니지만 시간이 많이 걸립니다. 처리 할 수있는 더 좋은 방법이 있다면 제안하십시오.

 driver = new FirefoxDriver(); 
     String searchKey = "TShirt(M)"; 
     driver.Navigate().GoToUrl("http://mywebsite.com/"); 

     if (searchKey.Contains("(") || searchKey.Contains("&")) 
     { 
      ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].value ='" + searchKey + "';", driver.FindElement(By.Id("search_text"))); 
     } 
     else 
     { 
      driver.FindElement(By.Id("search_text")).SendKeys(searchKey); 
     } 

     driver.FindElement(By.Id("search_button")).Click(); 
관련 문제