【问题标题】:Sendkeys to a GXT integerSpinnerField in Selenium将密钥发送到 Selenium 中的 GXT integerSpinnerField
【发布时间】:2015-07-10 15:02:33
【问题描述】:

我一直在尝试向 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

【问题讨论】:

  • 发布您的代码和微调器的 HTML。

标签: java selenium automation


【解决方案1】:

不要为 ExtJs 应用程序使用 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");

【讨论】:

    猜你喜欢
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2021-04-21
    相关资源
    最近更新 更多