我需要从GWT应用程序中的Element获取text / value。应用程序和元素可以在这里找到:
-open http://www.festo.com/cat/en-us_us/products
- 点击“产品”
- 点击“软件”
- 点击“旋转索引表”
- 点击“下一步”
- 点击“下一步”*
现在您在页面“3.加载设置”
- 输入50(kgcm²)作为质量惯性矩
- 输入50(kg)作为质量
- 输入50(mm)作为r作为距离/杠杆臂
- 输入50(度)作为希腊字母theta
- 输入50(mm)作为Z
- 点击下一步“下一步”
现在你的页面是“4.结果”
在这里您可以看到“C:总循环时间”(和其他结果)的结果,对于之前在页面上输入的值,这将是0.518秒。
我能够用硒(在perl中)自动完成所有这些,直到我到达第4页,在这里我无法抓住结果。任何人都可以给我一个建议怎么做?我想这不是一个perl问题。
如果我使用FireBug获取更多细节,我也无法在HTML标签中找到结果值“0.518”。如果我切换到FireBug的DOM选项卡,我就能找到它。
THX
罗兰
答案 0 :(得分:0)
您可以尝试将输入元素的文本通过[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));
答案 1 :(得分:0)
GWT使用iframe - 这对Selenium测试来说不友好。
您的元素包含在此iframe中:CamosIFramecamosFSV22E4A4C1E_EDC0_768B_CC78_8BA85ABADCCD
您需要先使用以下内容切换到iframe:
driver.switchTo().frame("Your-frame-id");
当动态生成帧时(这可能是这种情况),您可以尝试传递索引。
当你在正确的框架上时,你可以尝试用css类找到你的元素:input.GM53QT1CF
- 但是当我看到它选择页面上的所有输入字段时。 Selenium从列表中取出第一个,所以在你的情况下它应该没问题。