【问题标题】:Easiest way to select or type over text in a text box in protractor?在量角器的文本框中选择或键入文本的最简单方法是什么?
【发布时间】:2018-12-19 16:30:20
【问题描述】:

在量角器测试中,我有一个预先填充了值的<input type="text"/>,我想删除该值并键入一个新值。理想情况下,我可以说类似

// Some way to select all the text in the text box so `
// sendKeys` will type over it.
element(by.css("input.myInput")).selectAll();

element(by.css("input.myInput")).sendKeys("my new value");

但是selectAll 不存在,我在 API 文档中找不到任何有用的信息。

有什么想法吗?

【问题讨论】:

    标签: protractor


    【解决方案1】:

    我在我的一个测试中使用clear 来执行此操作,就像一个魅力;)

    element(by.css("input.myInput")).clear();
    

    【讨论】:

    • 你也可以像这样链接 clear() 和 sendKeys():$("input.myInput").clear().sendKeys("my new value");
    • 对我不起作用。这是顽固情况的解决方法:stackoverflow.com/a/65477389/3021889(例如,自动格式化的字段或量角器/操作系统不兼容)
    【解决方案2】:

    找到了:

    var ctrlA = protractor.Key.chord(protractor.Key.CONTROL, "a");
    element(by.css("input.myInput")).sendKeys(ctrlA);
    

    发送 Ctrl+A,“全选”的键盘快捷键。

    【讨论】:

    • 不幸的是,这在 OSX 上不起作用。你需要 Cmd+A 那里。
    【解决方案3】:

    双击输入并点击BackSpace

    browser.actions().doubleClick(input).sendKeys(Key.BACK_SPACE).perform();

    或者双击输入并设置一个新值,它将替换以前的值

    browser.actions().doubleClick(input).sendKeys('9999').perform();

    【讨论】:

    • browser.actions().doubleClick(input).sendKeys('9999').perform().getText().then(function(text){console.log(text) });我需要获取文本但我下注错误我该怎么做?
    【解决方案4】:

    类似于 glepretre,我的解决方案是输入 formcontrol 被命名为“名称”,但这对我有用

    newValue = getNewValue();
    element(by.css('input[formControlName=Name]')).clear();
    element(by.css('input[formControlName=Name]')).sendKeys(newValue)
    .then(function () {....});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-06
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      相关资源
      最近更新 更多