我需要从 GWT 应用程序中的元素获取文本/值。该应用程序和元素可以在这里找到:
-打开http://www.festo.com/cat/en-us_us/products
-点击“产品”
-单击“软件”
-单击“旋转分度台”
-单击“下一步”
-单击“下一步”*
现在您位于“3.加载设置”页面
-输入 50 (kg cm²) 作为质量惯性矩
-输入 50(公斤)作为质量
-输入 50 (mm) 作为距离/杠杆臂的 r
-输入 50(度)作为希腊字母 theta
-输入 50(毫米)作为 Z
-单击下一步“下一步”
现在您的页面为“4. 结果”
在这里您可以看到“C:总周期时间”的结果(以及其他结果),对于之前在页面上输入的值来说,该结果将为 0.518 秒。
我可以使用selenium(在perl中)自动完成所有这些工作,直到我到达第4页,在这里我无法获取结果。谁能给我建议该怎么做?我想这不是 perl 问题。
如果我使用 FireBug 获取更多详细信息,我也无法在 HTML 选项卡中找到结果值“0.518”。如果我切换到 FireBug 的 DOM 选项卡,我就能找到它。
谢谢
罗兰
最佳答案
GWT 使用 iframe - 这对于 Selenium 测试不友好。
您的元素包含在此 iframe 中:CamosIFramecamosFSV22E4A4C1E_EDC0_768B_CC78_8BA85ABADCCD
您需要先切换到 iframe,如下所示:
driver.switchTo().frame("Your-frame-id");
当动态生成帧时(这里可能是这种情况),您可以尝试传递索引。
当您位于正确的框架上时,您可以尝试使用 css 类查找元素:input.GM53QT1CF
- 但正如我所见,它会选择页面上的所有输入字段。 Selenium 从列表中取出第一个,所以在你的情况下应该没问题。
关于javascript - Selenium:无法在 GWT 应用程序中找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538155/