package com.codeborne.selenide.commands;
import com.codeborne.selenide.Command;
import com.codeborne.selenide.SelenideElement;
import com.codeborne.selenide.ex.InvalidStateException;
import com.codeborne.selenide.impl.WebElementSource;
import org.openqa.selenium.WebElement;
public class SetSelected implements Command<WebElement> {
Click click = new Click();
@Override
public WebElement execute(SelenideElement proxy, WebElementSource locator, Object[] args) {
boolean selected = (Boolean) args[0];
WebElement element = locator.getWebElement();
if (element.isSelected() ^ selected) {
if (element.getAttribute("readonly") != null)
throw new InvalidStateException("Cannot change value of readonly element");
click.execute(proxy, locator, NO_ARGS);
}
return proxy;
}
}