如何覆盖文本框

时间:2016-08-10 10:55:25

标签: javascript java selenium-webdriver

我想更改文本的值。但是文本位于文本框段落的中间(第4行)。任何人都可以指导我如何识别文本以及如何更改它。

注意:我不能使用clear()&在这种情况下sendkeys()方法。因为休息所有其他数据都在动态变化。

3 个答案:

答案 0 :(得分:1)

我假设通过" textbox"你的意思是input type="text"

你需要:

  1. 从DOM获取input type="text"元素。
  2. 获取它的价值(文字)。
  3. 使用.replace()
  4. 将更换的字符串重新放入。
  5. 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;
    

    &#34;这是我的文字&#34;将更改为&#34;这是您的文字&#34;。

答案 1 :(得分:0)

使用selenium和java,你可以这样做:

    //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);

答案 2 :(得分:0)

您可以通过selenium将所有文本区域解析为字符串。

然后使用此方法获取新段落:

        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);
        }

在那个明文区域之后并将此替换后的字符串发送到里面。希望它适合你。

相关问题