Мой HTML:
<div tabindex = "-1" role = "gridcell" comp-id = "376" col-id = "0" class = "ag-cell ag-cell-not-inline-editing ag-cell-with-height ag-cell-focus ag-cell-range-selected ag-cell-range-selected-1" style = "width: 77px; left: 0px;">
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
</span>
</div>
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
</span>
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span><span ref = "eCellValue" class = "ag-cell-value"></span>
</span>
Как написать правильный идентификатор для установки флажка. У меня есть строка с информацией, в этой строке есть флажок, мне нужно установить этот флажок.
Это мой XPath?
var checkbox= element(by.css('div.ag-body-container>div[row id = "0"]>div[col-id = "0"]'));
browser.wait(ExpectedConditions.elementToBeClickable(checkbox), 5000);
checkbox.click();
Пройдено, но правый флажок не установлен, просто выделена целая строка.
Мой HTML:
<div tabindex = "-1" role = "gridcell" comp-id = "376" col-id = "0" class = "ag-cell ag-cell-not-inline-editing ag-cell-with-height ag-cell-focus ag-cell-range-selected ag-cell-range-selected-1" style = "width: 77px; left: 0px;"><span ref = "eCellWrapper" class = "ag-cell-wrapper"><span class = "ag-selection-checkbox"><span class = "ag-icon ag-icon-checkbox-checked"></span><span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span><span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span></span><span ref = "eCellValue" class = "ag-cell-value"></span></span></div>
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
</span>
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
</span>
@ScottMarcus Я хочу указать правильный локатор и элемент щелчка.
Щелкните элемент который?
@ScottMarcus этот элемент <div tabindex = "- 1" role = "gridcell" comp-id = "376" col-id = "0" class = "ag-cell ag-cell-not-inline-edit ag-cell- with-height ag-cell-focus ag-cell-range-selected ag-cell-range-selected-1 "style = " width: 77px; left: 0px; "> <span ref = " eCellWrapper "class = " ag- cell-wrapper "> <span class = " ag-selection-checkbox "> <span class = " ag-icon ag-icon-checkbox-checked ag-hidden "> </span> <span class = " ag-icon ag -icon-checkbox-unchecked "> </span> <span class = " ag-icon ag-icon-checkbox-indeterminate ag-hidden "> </span> </span> <span ref = " eCellValue "class = " значение-ячейки "> </span> </span> </div>
@ScottMarcus это мой элемент css (by.css ('div.ag-body-container> div [row id = "0"]> div [col-id = "0"]')); он просто подсвечивался, не нажимал. Наверное мой css не указан
@ScottMarcus Failed: документ не определен Stack: ReferenceError: документ не определен
Убедитесь, что вы добавили этот код в элемент <script> непосредственно перед закрывающим тегом body. Код действительно работает, как вы можете видеть, запустив его здесь. document всегда существует на веб-странице. Если это не работает для вас, значит, что-то еще не так.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете просто использовать document.querySelector(), который изолирует элемент по некоторому уникальному фактору. Я предполагаю, что значение comp-id уникально. Но вы должны знать, что comp-id - недопустимый атрибут.
let theDiv = document.querySelector("div[comp-id='376']");
theDiv.addEventListener("click", function(){
console.info("element clicked!");
});
theDiv.click(); <div tabindex = "-1" role = "gridcell" comp-id = "376" col-id = "0" class = "ag-cell ag-cell-not-inline-editing ag-cell-with-height ag-cell-focus ag-cell-range-selected ag-cell-range-selected-1" style = "width: 77px; left: 0px;"><span ref = "eCellWrapper" class = "ag-cell-wrapper"><span class = "ag-selection-checkbox"><span class = "ag-icon ag-icon-checkbox-checked"></span><span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span><span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span></span><span ref = "eCellValue" class = "ag-cell-value"></span></span></div>
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
</span>
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
<span ref = "eCellWrapper" class = "ag-cell-wrapper">
<span class = "ag-selection-checkbox">
<span class = "ag-icon ag-icon-checkbox-checked"></span>
<span class = "ag-icon ag-icon-checkbox-unchecked ag-hidden"></span>
<span class = "ag-icon ag-icon-checkbox-indeterminate ag-hidden"></span>
</span>
<span ref = "eCellValue" class = "ag-cell-value"></span>
</span>var css_locator = 'div.ag-body-container > div[row-id = "0"] > div[col-id = "0"] .ag-selection-checkbox :not(.ag-hidden)';
var checkbox= element(by.css(css_locator));
browser.wait(ExpectedConditions.elementToBeClickable(checkbox), 5000);
checkbox.click();
Как правило, ответы намного полезнее, если они включают объяснение того, для чего предназначен код, и почему это решает проблему, не вводя других.
Помогло.Спасибо.
Уточните, пожалуйста, что вы ищете. Здесь нет XPath и быть не должно, поскольку это не XML. CSS можно использовать для выбора элементов для стилизации, а DOM API можно использовать в JavaScript для запроса элементов. Но неясно, что вы на самом деле хотите делать.