为了账号安全,请及时绑定邮箱和手机立即绑定

赛普拉斯获取特定路径内的元素

赛普拉斯获取特定路径内的元素

繁花不似锦 2022-10-27 16:01:36
使用赛普拉斯自动化一些测试,我发现了这个问题。我们向客户提出了许多问题,这些问题将根据之前的答案一一出现。下一个问题(例如答案的类型)在显示之前将是未知的。我把这个留在这里作为一个例子,其中每个“div”(不是“rootDiv”)都是一个问题,并且它们仅在前一个得到响应时显示。    <div class="rootDiv">        <div class="type1">           <div class="type1b">              <button class="button1">              <button class="button1">           </div>        </div>        <div class="type2">           <div class="type2b">              <button class="button2">              <button class="button2">              <button class="button2">              <button class="button2">           </div>        </div>        <div class="type1">           <div class="type1b">              <button class="button1">              <button class="button1">           </div>        </div>        .        .        .       <div class="typeX">           <div class="typeXb">              <button class="buttonX">              <button class="buttonX">              <button class="buttonX">              <button class="buttonX">           </div>       </div>    </div>所以我面临的问题是:有没有办法访问“rootDiv”中的最后一个“div”,检查它的类并基于它点击任何按钮?有没有办法让最后一个“div”的按钮上写上“文本”?有没有办法拥有一个元素列表(在这种情况下是按钮)并遍历它们?有很多选项可以解决它,主要问题取决于如何获得这些元素
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

  1. 有没有办法访问“rootDiv”中的最后一个“div”,检查它的类并基于它点击任何按钮?

可以访问 'rootDiv': 中的最后一个 'div' cy.get('.rootDiv div').last()。然而,检查类然后根据类的值执行操作是一个坏主意,因为它是条件测试,而赛普拉斯并不是真正为它而生的。不过,如果你真的需要这种态度(没有其他更好的方法),我认为这是可行的。

  1. 有没有办法让最后一个“div”的按钮上写上“文本”?

是的,可以获得最后一个 div 的“文本”。cy.get('.rootDiv div').last().invoke('text').then((textOnTheButton) => {console.log(textOnTheButton})

3.有没有办法拥有一个元素列表(在这种情况下是按钮)并遍历它们?

要获得所有按钮,您只需要cy.get(button). 如果您想使用索引遍历所有这些,您可以使用 for 循环和eq(),但它可能不是所有情况下最好/最有效的解决方案。


查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号