扩展按钮直到状态更改

时间:2018-02-24 14:49:23

标签: javascript

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

我尝试测试一个包含此按钮的页面:

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

作为用户,当我按显示更多时,会显示&#34;显示更多内容&#34;。当没有更多要显示时,morearea-expanded变为true

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

我尝试过非常通用,因为我发现它是从我找到列表的完整按钮列表,然后是按钮的数量(但是这个数字在我尝试测试的每个页面中都不一样):

document.querySelectorAll('button')

就是这样:

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

1 个答案:

答案 0 :(得分:1)

您可以在while循环中继续调用click事件,直到属性值为&#34; true&#34;。使用jQuery(名为automationFunction()的函数)的示例:

&#13;
&#13;
$(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();
    }
  };

});
&#13;
<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">
&#13;
&#13;
&#13;