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

标签 javascript perl dom selenium gwt

我需要从 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/

相关文章:

javascript - 在 jquery 验证中使用远程方法的问题

regex - 有没有可能匹配第n个字符的方法?

javascript - 如何在 IE9 上的定期 AJAX 请求期间避免内存泄漏

javascript - 删除元素时是否应断开 IntersectionObserver

bash - 在 perl 中通过 ssh 将外部命令错误定向到文件

javascript - dom节点中 'isConnected'字段的可靠性

javascript - 从文件加载的 JSON 对象数组

javascript - 选择选项后缩小表单字段集文本

javascript - 验证失败时, Backbone 关系验证错误不返回

perl - while 和 foreach 混合循环问题