我有点问题,我试图在数据表数据中选择一个单选按钮。我能够将单个数据表行向下筛选为一个,因此它是唯一出现在页面上的数据...但我已经尝试过 public static class ServicePath{
private Integer index = 0;
private String path = null;
public ServicePath(Integer index, String path){
this.index = index;
this.path = path;
}
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
List<ServicePath> servicesPaths = Files.walk(Paths.get(parentFolder))
.map(Path::toString)
.map( path -> {
for (int i = 0; i < services.size(); i++) if ( path.endsWith(version + ".jar" ) && path.contains( services.get(i) ) ) return new ServicePath(i, path);
return null;
})
.filter( sp -> sp != null)
.collect( Collectors.toList() );
servicesPaths.sort( (sp1, sp2) -> sp1.getIndex().compareTo( sp2.getIndex() ) );
List<String> sortedPaths = servicesPaths.stream().map( sp -> sp.getPath() ).collect( Collectors.toList() );
,page.choose
,page.find(<xpath>)
,我我还尝试在某个css选择中做了以前的所有事情,我无法弄清楚还有什么可以尝试。
不幸的是,相关的HTML就在这里,因为这是一个我无法发布所有内容的工作项。但是如果我通过以下方式指定id,我可以点击标签:
page.find(<css>)
但实际上这似乎并没有“选择”单选按钮。在过滤数据表结果后,我也尝试过等待
无论如何,这是过滤行后的2个单选按钮的HTML(单选按钮位于列中)
find(:xpath, "//label[@for='approve_row_5']").click
我想过只是通过文本找到跨度并点击它,它通过....但实际上并没有选择单选按钮。此外,我尝试通过<td class=" align-middle">
<div class="radio">
<input type="radio" name="approve_deny_row_5" id="approve_deny_row_5_approve" value="person_approve" data-ui-verify-key="test_approve" data-ui-verify-title="2017-07-13 14:59:46 -0400">
<label for="approve_deny_row_5_approve">
<span>Approve</span>
</label>
</div>
<div class="radio">
<input type="radio" name="approve_deny_row_5" id="approve_deny_row_5_deny" value="person_deny" data-ui-verify-key="test_deny" data-ui-verify-title="2017-07-13 14:59:46 -0400" data-ui-verify-url="/irrelevant/stuff">
<label for="approve_deny_row_5_deny">
<span>Deny</span>
</label>
</div>
</td>
通过特定值选择器进行搜索,但也没有运气
有什么想法吗?
答案 0 :(得分:2)
假设实际的无线电输入在页面上可见(并且没有隐藏以允许样式化),应该适用于此的方法是
choose("Approve")
choose("Deny")
或
choose("approve_deny_row_5_approve")
choose("approve_deny_row_5_deny")
如果那些人告诉你他们找不到元素,那么输入元素很可能实际上是隐藏的(出于样式原因)你应该可以使用
choose('Approve', allow_label_click: true)
将单击与输入关联的标签元素而不是输入元素。这应该产生相同的结果(设置单选按钮),除非您正在寻找的行为基于JS寻找对特定元素的点击(而不是输入上的更改事件)。如果恰好是这种情况,那么你需要弄清楚JS正在寻找点击的确切元素,或者修复JS以更直观的方式行事。