gpt4 book ai didi

selenium - 通过 sendKeys() 将字符串发送到 ExtJS 输入时,第一个字符不断丢失

转载 作者:行者123 更新时间:2023-12-03 22:20:24 28 4
gpt4 key购买 nike

我随机遇到了 ExtJS5 输入字段中缺少第一个字符的问题,同时通过 sendKeys 方法发送字符串。

系统信息:
Ubuntu 14.04 -> 带有 Selenium 网格的 docker 容器 (2.48.2)
浏览器火狐

代码很简单。我只是得到输入 web 元素,等待它是否可点击(即 isEnabled 和 isDisplayed),清除并发送字符串:

wait.until(ExpectedConditions.elementToBeClickable(input)).clear();
input.sendKeys(value);

input 元素也很简单:
<input id="textfield-1455-inputEl" data-ref="inputEl" type="text" role="textbox" size="1" name="name" class="x-form-field x-form-required-field x-form-text x-form-text-default x-form-focus x-field-form-focus x-field-default-form-focus" autocomplete="off" componentid="textfield-1455"/>

我注意到该问题仅发生在页面上执行的第一个 sendKeys() 上:
  • 进入页面,等待页面加载,使用第一个输入
  • 进入页面,等待页面加载,在相应的选择框中选择启用以启用输入字段,使用输入字段( image with this example is attached )
  • 进入页面,等待页面加载,点击添加按钮添加需要的输入框,使用输入框

  • 页面上其他出现的 sendKeys 是稳定的。

    我一直在寻找类似的问题。似乎没有特殊字符的问题(缺少字符示例:46-> 6; coverTest -> overTest; 1 -> nothing);

    此外,我认为这不是由于远程 webdriver 基础设施而导致字符丢失的问题。测试随机失败,但在准确的地方失败。

    我知道我可以使用 sendKeys(),然后检查输入的值并重复发送操作。然而,这是最后的选择。

    是否需要对 ExtJS 输入(DOM 中的任何属性)进行任何额外检查以确保输入字段已准备就绪?

    感谢你的帮助。

    最佳答案

    有时它会发生在我身上。首先尝试单击该字段,但假设可能存在一些与焦点相关的问题,这是一个疯狂的猜测。
    您的序列可能有点像这样:

    wait.until(ExpectedConditions.elementToBeClickable(input)).click();
    input.clear();
    input.sendKeys(value);

    奇怪的是,我实际上遇到了一种情况,在发送值之前我单击了两次它并且它以某种方式工作:P

    另一件事可以尝试使用 非本地 JavaScript 执行器。
    JavascriptExecutor myExecutor = ((JavascriptExecutor) driver);
    myExecutor.executeScript("arguments[0].value='6';", input);

    对不起,伙计,如果系统在我面前,我会尝试更多的东西。

    关于selenium - 通过 sendKeys() 将字符串发送到 ExtJS 输入时,第一个字符不断丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086613/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com