Selenium:无法在GWT应用程序中找到元素

Selenium:无法在GWT应用程序中找到元素

问题描述:

我需要从GWT应用程序中的元素中获取文本/值。该应用程序和元素都可以在这里找到:Selenium:无法在GWT应用程序中找到元素

-open http://www.festo.com/cat/en-us_us/products

- 点选

- 单击“软件”上的“旋转分度表”

- 单击“产品”

- 单击 “下一步” “下一步”

-click *

现在你在页面上“3。负载设置”

- 输入50(公斤平方厘米)作为质量惯性矩

- 输入50(kg)作为质谱

- 输入50(毫米)为r如距离/杠杆臂

- 输入50(度),为希腊字母THETA

- 输入50(毫米)为Z

-click下一个 “下一步”

现在你在页面上“4。结果”

这里你可以看到的结果‘C:总周期时间’(和其他结果),这将是0.518 S为值之前的页面上输入

我能够做到这一切自动与硒(在perl),直到我到达第4页,在这里我不能抓住结果。谁能给我一个建议怎么办?一些更多的细节,我也无法找到HTML标签中的结果值“0.518”。如果我切换到FireBug的DOM选项卡,我能找到它。

Thx

罗兰

+0

您可以粘贴与您的问题相关的HTML代码吗? – Michal

+0

在屏幕**上包含结果**的字段是

+0

在关闭浏览器之前,一次给Thread.sleep()。这样你就可以看到结果。否则您可以使用getText()从该页面获取结果并将其打印在日志中。 –

GWT使用iframe - 这对Selenium测试不友好。 您的要素包括在此iframe:CamosIFramecamosFSV22E4A4C1E_EDC0_768B_CC78_8BA85ABADCCD

你需要切换到iframe的第一的东西,如:

driver.switchTo().frame("Your-frame-id"); 

当帧动态生成的,可以在这里是这种情况,你可以用试传球指数。

当你在正确的框架上,你可以尝试找到你的元素与CSS类:input.GM53QT1CF - 但我看到它选择页面上的所有输入字段。硒从列表中第一个,所以你的情况应该没问题。

+0

我的脚本在点击“旋转索引表”后直接切换到此IFrame。即使在结果页面再次切换到该fraim也没有区别。 正如我所说,我看不到“0.518”或FireBug的HTML标签中的任何其他结果值,我只能在DOM标签中看到它。 –

+0

我可以选择这个元素与萤火虫 - 只需选择萤火虫的'检查箭头',并指出它的元素。然后我也可以用FirePath扩展来评估css选择器。只需选择适当的iframe。这是唯一的选项,我可以用来验证您的定位器 – Michal

+0

如果我使用“检查箭头”点击该字段,我看到这在HTML标签 '' 我是否也必须在FireBug中选择Frame?如果是的话,怎么样? –

你可以尝试通过[Ctrl + A],然后读取剪贴板,可能是一个解决办法复制输入元素的文本复制到剪贴板的组合。

确保您正确定位您的输入元素!

WebElement inputElement = driver.findElement(inputLocator); 

//copy all text inside input element 
inputElement.sendKeys(Keys.chord(Keys.CONTROL, "a")); 

//now read the clipboard 
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
System.out.println(clipboard.getData(DataFlavor.stringFlavor));