无法识别具有部分 ID 的 extjs 日期字段
Unable to identify extjs date field with partial ID
我正在 ExtJS
开发一个应用程序,它本质上是非常动态的。我正在使用 selenium Webdriver,我可以使用部分 ID(包含、开始等等)在页面中找到文本字段、组合框,但无法在同一页面中找到日期字段(注意:只有一个日期字段存在于页面中。)。请帮我识别这个日期字段对象。
我可以使用以下代码访问组合框:
WebElement comb = driver.findElement(By.xpath(“//input[contains(@id, ‘combo’)]”));
尝试了以下但无法找到日期字段:
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″>
ExtJS 具有通过 ext id(可能与 HTML elementID 不同)检索元素的现有功能。但是一旦你知道元素的 ext id,你就可以使用这个 ext 函数来检索元素 id:Ext.getCmp("your-Ext_id").getInputId()
然后你可以通过这种方式使用它来获取 HTML 元素:
document.getElementById(Ext.getCmp("your-Ext_id").getInputId());
请看这个fiddle
我找到了解决办法。在代码中添加了Javascript
JavascriptExecutor jsexc3 = (JavascriptExecutor) driver;
jsexc3.executeScript("Ext.getCmp('Componentname').queryById('formname').down('#itemId').setValue('"10/10/1990"')");
我正在 ExtJS
开发一个应用程序,它本质上是非常动态的。我正在使用 selenium Webdriver,我可以使用部分 ID(包含、开始等等)在页面中找到文本字段、组合框,但无法在同一页面中找到日期字段(注意:只有一个日期字段存在于页面中。)。请帮我识别这个日期字段对象。
我可以使用以下代码访问组合框:
WebElement comb = driver.findElement(By.xpath(“//input[contains(@id, ‘combo’)]”));
尝试了以下但无法找到日期字段:
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″>
ExtJS 具有通过 ext id(可能与 HTML elementID 不同)检索元素的现有功能。但是一旦你知道元素的 ext id,你就可以使用这个 ext 函数来检索元素 id:Ext.getCmp("your-Ext_id").getInputId()
然后你可以通过这种方式使用它来获取 HTML 元素:
document.getElementById(Ext.getCmp("your-Ext_id").getInputId());
请看这个fiddle
我找到了解决办法。在代码中添加了Javascript
JavascriptExecutor jsexc3 = (JavascriptExecutor) driver;
jsexc3.executeScript("Ext.getCmp('Componentname').queryById('formname').down('#itemId').setValue('"10/10/1990"')");