将密钥发送到Selenium中的GXT integerSpinnerField

时间:2015-07-10 15:02:34

标签: java selenium automation

我一直在尝试" sendkeys"到IntegerSpinnerField但它不起作用。 IntegerSpinnerField有一个id但我不能使用" sendkeys"在上面。我打开了html ID,但是IntegerSpinnerField是1中的3个小部件。所以无论如何我可以给构成IntegerSpinnerField的3个小部件赋予一个id。

HTML代码

<div __gwtcellbasedwidgetimpldispatchingfocus="true" __gwtcellbasedwidgetimpldispatchingblur="true" id="maximumfrequencySpinnerField" class="GJCAMDBBOPB" title="Enter an maximum frequency  value within the allowable range. The allowed range is  776 to 787 MHz" style="width: 100px;"><div style="width: 100px;" class="GJCAMDBBAW"><table width="100%" cellpadding="0" cellspacing="0"><tbody><tr><td><input style="width: 75px;" type="text" value="" class="GJCAMDBBCV GJCAMDBBJV" id="x-auto-229-input" tabindex="0" disabled=""></td><td><div class="GJCAMDBBKV"></div><div class="GJCAMDBBNV"></div></td></tr></tbody></table></div></div>

自动生成的文本字段的ID     

1 个答案:

答案 0 :(得分:0)

不要使用Ext的应用程序的id,它们是在运行时动态生成的,每次都容易改变。所以你必须为每个元素编写一个相对的xpath。并且ExtJS元素遵循一些模式所以你必须为它编写xpaths你可以重复使用它们。

参考any-suggestions-for-testing-extjs-code-in-a-browser-preferably-with-selenium

对于您的案例和大多数输入元素,您可以使用标签找到它。标签的直接输入可能是您要查找的元素

我使用以下xpath测试了此demo site中名为Revenue %:的微调器字段

 //label[text()='Revenue %:']//following::input

上述网站的脚本。希望它有帮助

 WebDriver driver = new FirefoxDriver();
    driver.get("https://www.sencha.com/examples/#ExamplePlace:dashboard");
    WebElement element=driver.findElement(By.xpath("//label[text()='Revenue %:']//following::input"));
    element.clear();
    element.sendKeys("67.67");