我目前正在为一个Web应用程序编写测试自动化,该应用程序作为最终用户的SWF文件加载,但是一个功能完备的Javascript版本仅用于自动化。
我有办法用键盘快捷键浏览应用程序,但是当执行点击命令时,我根本没有运气。在使用Firebug / Firepath检查时,我能找到的唯一值是xpath(没有id,没有类,没有任何东西)。
下一个问题是xpath本身。 它是:
非常脆弱。
.//*[@id='flow']/div[1]/div/div[7]/div/div[3]/div[4]/div/div/div/div/div/div/div/div[3]/div[1]/img
这似乎是代表按钮的图像的xpath,而不是按钮本身。
在上述类型的xpath上执行.click()
命令将不会做任何事情,直到您手动将鼠标悬停在按钮上(无论moveToElement命令如何),它将“单击”图像但不会运行任何功能。 / p>
所以我想知道在寻找标识符的实际JavaScript中,有没有办法通过任何其他属性选择元素?或者有什么方法可以更好地“识别”一个功能?也许找到图像所代表的按钮的xpath?
使用JUnit和Java,如果有帮助的话。
由于
答案 0 :(得分:1)
显然,我的评论回答了OP的问题,所以这里是为了参考:
如果您需要"按钮本身" ,正如您在问题中所写,请使用浏览器中的 Inspect Element 来查找实际内容你需要的元素然后只需从你的XPath表达式的右侧移除足够的轴步,直到剩下的部分选择作为实际按钮元素的祖先元素。
现在您应该可以向其发送点击事件。
我担心我们可以做的很多关于XPath语句的问题很简单,因为你没有标识符可以继续。这意味着如果页面结构发生变化,则必须更改XPath(除非某些祖先元素具有一些值得注意的标识符)。