package integration; import org.junit.Before; import org.junit.Test; import static com.codeborne.selenide.Condition.attribute; import static com.codeborne.selenide.Selectors.*; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$$; import static com.codeborne.selenide.WebDriverRunner.*; import static org.junit.Assert.*; import static org.junit.Assume.assumeFalse; public class AttributeTest extends IntegrationTest { @Before public void openTestPage() { openFile("page_with_selects_without_jquery.html"); } @Test public void canVerifyAttributeExistence() { $("#domain-container").shouldHave(attribute("class")); $("#domain-container").shouldNotHave(attribute("foo")); // $("#domain-container").shouldNotHave(attribute("title")); // it's a bug in selenium webdriver } @Test public void canCheckAttributeExistence() { assertTrue($("#domain-container").has(attribute("class"))); assertFalse($("#domain-container").has(attribute("foo"))); // assertFalse($("#domain-container").has(attribute("title"))); // it's a bug in selenium webdriver } @Test public void userCanFindElementByAttribute() { assertEquals("select", $(byAttribute("name", "domain")).getTagName()); assertEquals("@мыло.ру", $(byAttribute("value", "мыло.ру")).getText()); assertEquals("div", $(byAttribute("id", "radioButtons")).getTagName()); assertEquals(4, $$(byAttribute("type", "radio")).size()); assertEquals("username", $(byAttribute("readonly", "readonly")).getAttribute("name")); assertEquals("meta", $(byAttribute("http-equiv", "Content-Type")).getTagName()); } @Test public void userCanGetAttr() { assertEquals("username", $(by("readonly", "readonly")).attr("name")); } @Test public void userCanGetNameAttribute() { assertEquals("username", $(by("readonly", "readonly")).name()); } @Test public void userCanGetDataAttributes() { assertEquals("111", $(byValue("livemail.ru")).getAttribute("data-mailServerId")); assertEquals("111", $(byValue("livemail.ru")).data("mailServerId")); assertEquals("222A", $(byText("@myrambler.ru")).data("mailServerId")); assertEquals("33333B", $(byValue("rusmail.ru")).data("mailServerId")); assertEquals("111АБВГД", $(byText("@мыло.ру")).data("mailServerId")); } @Test public void userCanSearchElementByDataAttribute() { assumeFalse(isChrome() || isHtmlUnit() || isPhantomjs()); assertEquals("111", $(by("data-mailServerId", "111")).data("mailServerId")); assertEquals("222A", $(by("data-mailServerId", "222A")).data("mailServerId")); assertEquals("33333B", $(by("data-mailServerId", "33333B")).data("mailServerId")); assertEquals("111АБВГД", $(by("data-mailServerId", "111АБВГД")).data("mailServerId")); } @Test public void userCanSearchElementByTitleAttribute() { assertEquals("fieldset", $(byTitle("Login form")).getTagName()); } }