无法使用部分ID标识extjs日期字段

lsmepo6l  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(219)

我正在ExtJS中开发一个应用程序,它本质上是非常动态的。我正在使用selenium Webdriver,我可以使用部分ID(Contains、Startwith等)定位页面中的文本字段和组合框,但无法在同一页面中定位日期字段(注意:页面中只存在一个日期字段。)。请帮助我标识此日期字段对象。
我可以使用下面的代码访问组合框:

一个月一个月

已尝试使用下面的,但无法找到日期字段:

WebElement dateBox = driver.findElement(By.xpath(“//input[contains(@id, ‘datefield’)]”));
HTML详细资料:

<input id=”datefield-1217-inputEl” data-ref=”inputEl” type=”text” role=”textbox” size=”1″ name=”dateOfBirth” maxlength=”10″ class=”x-form-field x-form-required-field x-form-text x-form-text-default x-form-invalid-field x-form-invalid-field-default” autocomplete=”off” componentid=”datefield-1217″>

drnojrws

drnojrws1#

ExtJS有一个通过ext id(可能与HTML elementID不同)来检索元素的现有特性。但是一旦知道了元素的ext id,就可以使用以下ext函数来检索元素id:Ext.getCmp("your-Ext_id").getInputId(),然后您可以使用它来取得HTML项目:

document.getElementById(Ext.getCmp("your-Ext_id").getInputId());

请看这把小提琴

mdfafbf1

mdfafbf12#

我有个解决办法在代码里加了Javascript

JavascriptExecutor jsexc3 = (JavascriptExecutor) driver;

jsexc3.executeScript("Ext.getCmp('Componentname').queryById('formname').down('#itemId').setValue('"10/10/1990"')");

相关问题