Как найти и щелкнуть переключатель через ярлык с помощью Selenium и Java - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу снять отметку с переключателя на веб-странице, которая отмечена по умолчанию, но я получаю сообщение об ошибке

"Исключение в теме" главная " org.openqa.selenium.ElementNotVisibleException: элемент не interactable "

Может кто-нибудь помочь мне исправить мой код, который я пробую?

WebElement travellerbutton = driver.findElement(By.xpath("//label[text()='Traveller']/preceding-sibling::input[@type='radio']"));
travellerbutton.click();

HTML:

<div class="radio">
    <input type="radio" name="tgselect" id="traveller" checked="">
    <label for="traveller">Traveller</label>
    <div class="check"></div>
</div>

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

К click() на элементе, связанном с <label> с текстом как Путешественник , вы можете использовать любую из следующих Стратегий локатора :

  • cssSelector:

    driver.findElement(By.cssSelector("label[for='Traveller']")).click();
    
  • xpath:

    driver.findElement(By.xpath("//label[@for='Traveller']")).click();
    
0 голосов
/ 02 апреля 2019

Возможно, есть несколько переключателей, и вам нужно выбрать еще одну.Но в случае, если вы можете снять флажок с помощью JavaScript, попробуйте код ниже:

((JavascriptExecutor)driver).executeScript("arguments[0].checked=false;", driver.findElement(By.id("traveller")));
...