javascript - 展开按钮直到状态改变

标签 javascript

我使用自动化测试工具(selenium)

我尝试测试一个有这个按钮的页面:

<button morearea-controllers="my-list" morearea-expanded="false" class="lpw-reach-text-more link">

作为用户,当我按下显示更多时,它会显示“显示更多内容”。当没有更多可显示时,morearea-expanded 变为 true

是否有任何 JavaScript 命令可以扩展按钮直到结束 (直到 morearea-expanded 变为真)

我尝试了一些非常笼统的东西,因为我发现它来 self 找到的完整按钮列表,然后是按钮的数量(但这个数字在我尝试测试的每个页面中都不相同):

document.querySelectorAll('button')

这是:

document.getElementsByTagName('button')[29].click()

最佳答案

您可以在 while 循环中不断调用 click 事件,直到属性值为“true”。使用 jQuery 的示例(名为 automationFunction() 的函数):

$(document).ready(function() {
  var count = 0,
      $button = $("[morearea-controllers='my-list']");

  /* bad code alert - just for sample purpose */
  $button.click(function() {

    if (count == 5) {
      return;
    } else {
      if (count === 4) {
        $(this).attr("morearea-expanded", true);
         $(this).val("Show Less");
      }
      $("#container").append((count + 1) + "<br/>");
      count++;
    }
  });

  /* automation function */
  $("#btn-automate").click(function() {
    automationFunction();
  });


  var automationFunction = function() {
    count = 0;

    while ($button.attr("morearea-expanded") === "false") {
      $button.click();
    }
  };

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  Five items hidden..click on show more to unhide
  <div id="container"></div>
</div>

<input type="button" id="btn-show-more" morearea-controllers="my-list" morearea-expanded="false" class="lpw-reach-text-more link" value="Show More"> <br/>

<input type="button" id="btn-automate" value="Invoke automation function">

关于javascript - 展开按钮直到状态改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48964096/

相关文章:

javascript - 不理解 ko.observables

javascript - 更改文档准备好时由 ajax 填充的选择的选定值?

javascript - Angular Controller 内部闭合

Javascript 相当于 Python 的 dict.setdefault 吗?

javascript - Javascript 游戏的开始屏幕/可点击的播放按钮

javascript - 如何向条形图添加多个工具提示

javascript - 循环元素不透明度

javascript - 正则表达式匹配所有 Vular 分数

javascript - 在模板中使用动态变量将 nunjucks 与 htmlWebpackPlugin 一起使用

javascript - 使用简单的正则表达式验证浏览器上传文件名和扩展名