我使用自动化测试工具(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()
答案 0 :(得分:1)
您可以在while循环中继续调用click事件,直到属性值为&#34; true&#34;。使用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();
}
};
});
&#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;