2016-08-10 2 views
0

텍스트의 값을 변경하고 싶습니다. 그러나 텍스트는 텍스트 상자의 단락 중간 (4 번째 줄)에 있습니다. 누구든지 텍스트를 식별하는 방법과 텍스트를 변경하는 방법을 안내해 줄 수 있습니까?텍스트 상자의 단락에서 특정 텍스트 값을 재정의하는 방법

참고 :이 경우에는 clear() & sendkeys() 메소드를 사용할 수 없습니다. 왜냐하면 나머지 모든 데이터는 동적으로 변경되기 때문입니다.

답변

1

나는 "텍스트 상자"를 사용하여 input type="text"을 의미한다고 가정합니다.

  1. input type="text" 요소는 DOM을 형성 받기 :

    당신은 할 필요가있다.

  2. 값 (텍스트)을 가져옵니다.
  3. .replace()을 사용하십시오.
  4. 는 다시 교체 된 문자열을 넣습니다.

HTML

<input id="myInput" type="text" value="This is my text" /> 

JS가

var myInput = document.getElementById("myInput") 
var myText = myInput.value.replace("my", "your"); 
myInput.value = myText; 

"이것은 내 텍스트입니다"로 변경됩니다 "이것은 텍스트입니다." 셀레늄과 자바를 사용

0

, 당신은 이런 식으로 작업을 수행 할 수 있습니다

//load the original text 
    String originalText = driver.findElement(By.id(inputId)).getAttribute("value"); 
    // replace 
    String newText = originalText.replace("what_you_want_to_replace", "text_to_replace_with"); 
    //clear field 
    driver.findElement(By.id(inputId)).clear(); 
    //write your new text 
    driver.findElement(By.id(inputId)).sendKeys(newText); 
0

당신은 셀레늄에 의해 문자열로 모든 텍스트 영역을 구문 분석 할 수 있습니다. 그 일반 텍스트 영역 후

 public string ReplaceRow(string txtArea, int replaceLine, string textToReplace) 
     { 
      //Split txtArea into List String 
      List<string> list = new List<string>(Regex.Split(txtArea, Environment.NewLine)); 
      //Replace specific line with your text 
      list[replaceLine - 1] = textToReplace; 
      return String.Join(Environment.NewLine, list); 
     } 

안쪽이 대체 문자열을 보내

그런 다음 새 단락을 얻기 위해이 방법을 사용. 희망이 당신을 위해 작동합니다.

+0

Viet Pham. 귀하의 솔루션은 내 문제에 적합합니다. – Varma

관련 문제