【问题标题】:WebDriver finding elements in grid layoutWebDriver 在网格布局中查找元素
【发布时间】:2013-02-27 14:05:11
【问题描述】:

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

我怎样才能做到这一点?

【问题讨论】:

    标签: java selenium junit jbehave


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-19
        • 2012-12-12
        • 1970-01-01
        • 2017-09-12
        • 1970-01-01
        • 2021-01-30
        • 1970-01-01
        • 2020-03-23
        相关资源
        最近更新 更多