赛普拉斯::如何通过选择alt值单击图像?

时间:2019-08-19 11:11:20

标签: cypress qa

我需要选择一个按钮内的图像。问题在于,有六个相似的图像,它们除了alt消息和来源外没有任何唯一的标识符。这是我正在使用的代码。

<div class="dropup-content" style="height: auto; max-height: 1000px;">
  <button type="button">
    <img src="images/en_US.png" alt="English" style="width: 45px; height: 30px;">
  </button>
  <button type="button">
    <img src="images/nb_NO.png" alt="Norwegian" style="width: 45px; height: 30px;">
  </button>
  <button type="button">
    <img src="images/fi_FI.png" alt="Finnish" style="width: 45px; height: 30px;">
  </button>
  <button type="button">
    <img src="images/fr_FR.png" alt="French" style="width: 45px; height: 30px;">
  </button>
  <button type="button">
    <img src="images/nl_BE.png" alt="Dutch" style="width: 45px; height: 30px;">
  </button>
  <button type="button">
    <img src="images/de_DE.png" alt="German" style="width: 45px; height: 30px;">
  </button>
</div>

现在,如果我需要选择alt值为“瑞典”的按钮,我该怎么做? 例如,我可以使用此代码获得第一个

cy.get('.dropup-content').first().click()

但是问题是序列每次都随机出现。因此,我不能依赖first()或next()方法。赛普拉斯有什么办法可以单击图像属性为“瑞典”的按钮?

2 个答案:

答案 0 :(得分:2)

您可以这样做:

cy.get('[alt="Swedish"]').click()

答案 1 :(得分:2)

尝试

cy.get('button[alt="Swedish"]').click()

但是,如果您可以控制这些按钮的创建方式,建议您将data-cy标记添加到它们中,然后通过

进行访问
cy.get('button[data-cy="Swedish"]').click()

best practices docu

中阅读原因