【发布时间】:2020-10-13 09:16:11
【问题描述】:
我无法检查表中存在的复选框并具有 ::before 标记,硒总是返回“元素不可见”错误。尝试将等待隐式和显式放置,但它对操作类(元素列表)都没有帮助。请帮助我从复选框列表中选择一个特定的复选框,所有复选框在 HTML Dom 中都有 ::before 标记。
我正在使用下面的 xpath,用于 div 数据表中存在的复选框:
//label[@for='myCheckboxrCustom']);
我正在使用 for 循环并将费用类型和业务目的的值存储在字符串中,然后将这些存储的值与预期值进行比较,当这些值匹配时,我使用 if 条件来选择复选框。但是,我收到“元素不可见”错误。
我也尝试过使用动作类移动到特定的复选框,然后检查它,但它只适用于表中的第一个复选框,而不是第二个复选框。好像我写的动作类不适用于元素列表
我正在使用 java 选择第二个复选框,费用类型为 Meals。
以下是 HTML:
<div class="col-12 scrolling pend active" style="width: 100%;">
<div class="title-table">
<div class="select">
<input id="check-all" class="check-all" type="checkbox" autocomplete="on">
<label for="check-all">
::before
</label>
</div>
<div class="expense-type">Expense Type</div>
<div class="bus-purpose">Business Purpose</div>
</div>
<div class="data-table ExpenseTransactionsDiv" referencetype="Actual" expdetailid="162341">
<div class="select" data-title="Select: ">
<input type="checkbox" id="myCheckboxr" name="chkExpenseDetailID" class="chkbox" value="162341" autocomplete="on">
<label for="myCheckboxrCustom">
::before
</label>
</div>
<div class="expense-type" data-title="Expense Type">Meals</div>
<div class="bus-purpose" data-title="Business Purpose">TC_4631</div>
</div>
<div class="data-table ExpenseTransactionsDiv" referencetype="Actual" expdetailid="162337">
<div class="select" data-title="Select: ">
<input type="checkbox" id="myCheckboxr" name="chkExpenseDetailID" class="chkbox" value="162337" autocomplete="on">
<label for="myCheckboxrCustom">
::before
</label>
</div>
<div class="expense-type" data-title="Expense Type">Hotel</div>
<div class="bus-purpose" data-title="Business Purpose">TC_4631</div>
</div>
</div>
```
【问题讨论】:
-
有3个复选框,你要点击哪一个?
-
第二个费用类型为膳食
-
您使用哪种语言? Java/Python/C#?
-
我是java用户
-
你能用所有这些附加信息更新主要问题吗?
标签: java html selenium xpath checkboxlist