选择没有特定id,class,xpath等的元素

时间:2015-09-21 17:44:40

标签: javascript java jquery xpath junit

我目前正在为一个Web应用程序编写测试自动化,该应用程序作为最终用户的SWF文件加载,但是一个功能完备的Javascript版本仅用于自动化。

我有办法用键盘快捷键浏览应用程序,但是当执行点击命令时,我根本没有运气。在使用Firebug / Firepath检查时,我能找到的唯一值是xpath(没有id,没有类,没有任何东西)。

下一个问题是xpath本身。 它是:

  1. 非常脆弱。

    .//*[@id='flow']/div[1]/div/div[7]/div/div[3]/div[4]/div/div/div/div/div/div/div/div[3]/div[1]/img
    
  2. 这似乎是代表按钮的图像的xpath,而不是按钮本身。

  3. 在上述类型的xpath上执行.click()命令将不会做任何事情,直到您手动将鼠标悬停在按钮上(无论moveToElement命令如何),它将“单击”图像但不会运行任何功能。 / p>

    所以我想知道在寻找标识符的实际JavaScript中,有没有办法通过任何其他属性选择元素?或者有什么方法可以更好地“识别”一个功能?也许找到图像所代表的按钮的xpath?

    使用JUnit和Java,如果有帮助的话。

    由于

1 个答案:

答案 0 :(得分:1)

显然,我的评论回答了OP的问题,所以这里是为了参考:

如果您需要"按钮本身" ,正如您在问题中所写,请使用浏览器中的 Inspect Element 来查找实际内容你需要的元素然后只需从你的XPath表达式的右侧移除足够的轴步,直到剩下的部分选择作为实际按钮元素的祖先元素。

现在您应该可以向其发送点击事件。

我担心我们可以做的很多关于XPath语句的问题很简单,因为你没有标识符可以继续。这意味着如果页面结构发生变化,则必须更改XPath(除非某些祖先元素具有一些值得注意的标识符)。