2

为了测试我的应用程序,我使用 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;")。

我怎样才能做到这一点?

4

2 回答 2

2

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

于 2013-04-09T14:53:11.303 回答
0

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

于 2013-02-28T00:50:37.343 回答