我如何找到按钮元素并单击它

时间:2018-12-06 18:11:37

标签: selenium-webdriver xpath css-selectors

<button class="sfc-value sfc-js-change sfc-js-field sfc-ui-btn fo-ui-btn fo-ui-container fo-ui-fixed style-114 layout-156 sfc-js-click" type="button">
    <span class="sfc-caption fo-ui-label style-115 layout-157 fo-ui-no-icon">Next</span>
</button>

我是硒的新手,我对这里的目标课程感到困惑。因此,将元素定位为最佳方法。我需要单击此处的按钮。

2 个答案:

答案 0 :(得分:2)

您使用所包含的文本创建一个以span开头的xpath,然后-back-引用按钮本身:

select t.*
from t
where exists (select 1
              from t tnext
              where tnext.log_id = t.log_id + 1 and tnext.employee_id = t.employee_id) or
      exists (select 1
              from t tprev
              where tprev.log_id = t.log_id - 1 and tprev.employee_id = t.employee_id);

**已编辑

答案 1 :(得分:1)

所需元素是动态元素,因此要定位该元素并单击它,您必须诱使 WebDriverWait 使所需元素可点击,并且可以使用以下任意一种方法以下( Java )解决方案:

  • cssSelector

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.sfc-value.sfc-js-change.sfc-js-field.sfc-ui-btn.fo-ui-btn.fo-ui-container.fo-ui-fixed.style-114.layout-156.sfc-js-click>span.sfc-caption.fo-ui-label.style-115.layout-157.fo-ui-no-icon"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='sfc-value sfc-js-change sfc-js-field sfc-ui-btn fo-ui-btn fo-ui-container fo-ui-fixed style-114 layout-156 sfc-js-click']/span[contains(text(),'Next')]"))).click();