У меня проблемы с тем, что веб-драйверу иногда не удается установить флажки и просто их пропускать, как в Firefox, так и в Chrome.
Я пробовал разные решения, такие как
click();
action.moveToElement(checkbox).clickAndHold(checkbox).release().perform();
jse.javascriptExecutor(argument[0].click(),checkbox).
Здесь я предоставляю Javascript-код, который у меня есть для события click
...
var selectCorrectOption = function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
$(this).find('> input').prop('checked', false);
} else {
$(this).addClass('selected');
$(this).find('> input').prop('checked', true);
}
};
$('.option > .input-container').on('click', selectCorrectOption);
...
HTML-код, к которому он прикреплен, событие javascript click
<div class="input-container selected" data-choice-id="2">
<input type="radio">
</div>
данные кода Java используют данныеАтрибутом для доступа к элементу является вопрос.Также обратите внимание, что после нажатия на div в указанном ниже коде появляется «выбранный» класс (который является текущим состоянием).
WebDriverWait wait = new WebDriverWait(driver, 20);
JavascriptExecutor jse = (JavascriptExecutor)driver;
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[data-choice-id='"+ wrongOptionVal +"']")));
radio=wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[data-choice-id='"+ wrongOptionVal +"']")));
jse.executeScript("arguments[0].scrollIntoView()", radio);
jse.executeScript("arguments[0].click()", radio);
Я ожидал, что он будет согласованным, в большинстве случаев работает, новсегда один или два раза он терпит неудачу.