WebDriver在网格布局中查找元素

时间:2013-02-27 14:05:11

标签: java selenium junit jbehave

为了测试我的应用程序,我使用Selenium,JBehave和JUnit。要在页面中查找元素,请使用WebDriver。

我有网格布局,在网格的每个部分我都有按钮,我想单击按钮,如:

getDriver().findElement(By.className("v-button")).click();

但我想点击网格布局特定部分的按钮:

<div class="v-gridlayout-slot" style="left: 0px; top: 0px;">
  <div class="v-verticallayout v-layout v-vertical v-widget">
    <div class="v-slot">
    <div class="v-slot v-slot-h2">
    <div class="v-slot">
    <div class="v-slot v-align-right v-align-bottom">
      <div tabindex="0" role="button" class="v-button v-widget">
<div class="v-gridlayout-slot" style="left: 308px; top: 0px;">

我在页面中有类似的结构,我想从左上角点击按钮(使用style="left: 0px; top: 0px;")。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

您最好让前端开发人员为您的按钮提供ID。然后按照“btn-top-left”等特定ID进行搜索,因为此元素在您的页面上将是唯一的。 按属性搜索元素是一种不好的做法,但如果没有其他选择,请尝试按属性进行搜索: getDriver()。findElement(By.xpath(“// div [contains(@ class,'v - ')and contains(@ style,'left:0px; top:0px;')]”))。click() ;

答案 1 :(得分:0)

您可以使用xpath搜索父div,其样式属性为'contains'“left:0px; top:0px;”。或者,获取所有带有“v-gridlayout-slot”类的div,然后通过字符串匹配检查它们的style属性,直到找到所需的元素。