Mik*_*ike 5 selenium extjs selenium-webdriver remotewebdriver
我随机面对ExtJS5输入字段中缺少第一个字符的问题,同时通过sendKeys方法发送字符串.
系统信息:Ubuntu 14.04 - >带有selenium网格的docker容器(2.48.2)浏览器Firefox
代码很简单.我只是获取输入web元素,等待它是可点击的(即isEnabled和isDisplay),清除并发送字符串:
wait.until(ExpectedConditions.elementToBeClickable(input)).clear();
input.sendKeys(value);
Run Code Online (Sandbox Code Playgroud)
输入元素也很简单:
<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"/>
Run Code Online (Sandbox Code Playgroud)
我注意到问题仅发生在页面上执行的第一个sendKeys():
页面上发生的其他sendKeys是稳定的.
我找了类似的问题.它似乎不是特殊字符的问题(缺少字符示例:46-> 6; coverTest - > overTest; 1 - >没有);
此外,由于远程webdriver基础结构,我不认为这是一个缺少字符的问题.测试失败,但在确切的地方.
我知道我可以使用sendKeys(),然后检查输入的值并重复发送操作.但是,这是最后一个选择.
是否需要对ExtJS输入(DOM中的任何属性)进行任何额外检查以确保输入字段已准备好?
感谢您的帮助.
有时它发生在我身上。首先尝试单击该字段,但假设可能存在一些与焦点相关的问题,这是一个疯狂的猜测。你的顺序可能有点像这样:
wait.until(ExpectedConditions.elementToBeClickable(input)).click();
input.clear();
input.sendKeys(value);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我实际上遇到了一种情况,我在发送值之前单击了它两次,并且它以某种方式起作用了:P
另一种尝试可能是使用非本机javascript 执行器。
JavascriptExecutor myExecutor = ((JavascriptExecutor) driver);
myExecutor.executeScript("arguments[0].value='6';", input);
Run Code Online (Sandbox Code Playgroud)
抱歉,伙计,如果系统就在我面前,我会尝试更多的事情。
| 归档时间: |
|
| 查看次数: |
2057 次 |
| 最近记录: |