我有以下代码
import { Component, OnInit, Input } from '@angular/core';
import { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';
@Component({
selector: 'app-partial-modal-content',
templateUrl: './partial-modal-content.component.html',
styleUrls: ['./partial-modal-content.component.css']
})
export class PartialCloneModalComponent implements OnInit {
@Input() cValue;
@Input() dValue;
constructor() { }
ngOnInit() {
}
}
现在,我想点击“仅查看”文字旁边的复选框。我试过了
<ng-template #content let-c="close" let-d="dismiss">
<app-partial-modal-content [cValue] = "this.c"></app-partial-modal-content>
</ng-template>
但点击文本而不是复选框。 任何帮助将不胜感激
答案 0 :(得分:1)
要点击&#39;仅查看&#39; 文本附近的复选框,您可以使用以下 xpath :
//tr[@type='clickable-row']//td[normalize-space()='View only']//preceding::td[1]/input[@type='checkbox']
答案 1 :(得分:0)
通过将..
添加到要升级的部分,可以在xpath中遍历的另一种方法。为此,您需要在之前抓住子元素。
我假设您要点击“仅查看”上方一级的复选框。文本,文本+复选框组合是唯一的(没有其他&#39;仅查看&#39;文本在同一页面上方有一个复选框);在这种情况下,你想要的xpath是
//td[contains(text(), 'View only')]/../td/input`.
此xpath转到td
,其中包含&#39;仅查看&#39;,上升一级到tr
,然后上升到第一个td
和输入
如果您想要更简单的文字匹配,可以td[normalize-space()='View only']
;如果你想在/../
之后更加具体,并告诉你抓住第一个td
你可以放td[1]
,你还可以将[@type='checkbox']
添加到输入中以确保你抓住了一个复选框。