【问题标题】:Checkboxes: Selenium automation of a website with custom jquery plugin复选框:使用自定义 jquery 插件对网站进行 Selenium 自动化
【发布时间】:2017-10-16 08:29:51
【问题描述】:

我正在使用带有 JavaScript 的 Selenium WebDriver 来自动化一些带有自定义 jquery 插件的网站测试,以使表单都“漂亮”,称为“jcf” - JavaScript 自定义表单 https://www.psd2html.com/js-custom-forms/

我正在尝试编写一个方法来检查复选框是否被选中,然后选中或取消选中。

我创建了一个通向

的 xpath

我试过了:

if (element.isSelected){
    element.click
 }

还有

boolean checked = button.getState();
if (button.getState()){
.click 

所发生的只是按钮被点击,无论其状态如何。

还有其他方法吗?任何帮助将不胜感激

这是包含复选框之一的整个可点击框元素的 DOM

<li class="dashboard-product-list active" data-id="5" data-position="2"      data-has-batch="t" data-has-search-term-group="" data-has-shelf-page="">
    <input class="multi-product-list-checkbox checkbox jcf-hidden" type="checkbox"/>
    <span class="jcf-checkbox jcf-checked">
        <span/>
    </span>
    <span class="dashboard-product-list-info">
        <span class="product-list-name">Food 20</span>
        <span class="pl-details-ico pull-right has-tooltip-ico" data-pl-id="5" data-tooltip="View product list" data-hasqtip="2"/>
        <span class="product-list-retailer-name">Walmart.com</span>
    </span>
</li>

【问题讨论】:

    标签: javascript jquery html selenium checkbox


    【解决方案1】:

    正如您提到的 jQuery 标签,您可以使用以下代码检查复选框是否选中:

     $("li.dashboard-product-list").each(function(){
        if($(this).find(".multi-product-list-checkbox").is(":checked")){
            //YOUR CODE GOES HERE
        }
    });
    

    【讨论】:

    • 但是同一个类有 20 个不同的复选框。这不会检查整个列表吗?我特别想要这个“Food 20”
    • 你的按钮在哪里?你也可以分享按钮html吗?
    • 就是这样。这是带有按钮的元素字段的整个 HTML。上面和下面有
    • (可以点击)的原因是因为 被隐藏了
  • "Food 20" span 是你的按钮,点击功能应该取决于复选框不是吗?
  • .click() 函数实际上适用于任何这些跨度。 Food 20 只是复选框旁边的一个文本字段,但根据 chrome 检查器,实际按钮本身是 是隐藏的
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签