使用 Selenium 和 Eclipse (Java) 为 table 边框断言 css 的样式

Assert style of css for table border using Selenium with Eclipse (Java)

我正在测试一个表单,测试的一部分是将必填字段留空,并检查该字段是否有红色边框,表明该字段是必填字段,应该在继续之前填写。到目前为止,我得到了以下代码:

driver=new FirefoxDriver();
driver.manage().window().maximize();

/** Test: Open page*/
driver.get ("URL with form");

/** the following confirms a text above the form stating what fields are mandatory and not filled */
driver.findElement(By.id("nextbutton")).click(); /** leave all fields blank and click on next below form */
assertEquals("The following fields are mandatory", driver.findElement(By.cssSelector("p")).getText());
assertEquals("Field 1 is mandatory", driver.findElement(By.xpath("//form[@id='genericform']/div[2]/ul/li")).getText());
assertEquals("Field 2 is mandatory", driver.findElement(By.xpath("//form[@id='genericform']/div[2]/ul/li[2]")).getText());
assertEquals("Field 3 is mandatory", driver.findElement(By.xpath("//form[@id='genericform']/div[2]/ul/li[3]")).getText());

assertTrue(isElementPresent(By.id("Field1.Value"))); /** confirms the first mandatory field is present */

现在我想 confirm/assert 必填字段有红色边框和图标,而 none-必填字段没有红色边框或图标。

CSS:
边框颜色:#E04228; 背景:#FFF url("../img/icon-field-error.png") 无重复滚动右中心 / 28px 22px;

我正在使用 Eclipse 和 Selenium webdriver

使用getCssValue()方法获取border-bottom-colorborder-top-colorborder-left-colorborder-right-color CSS属性:

assertEquals("rgba(224, 66, 40)", element.getCssValue("border-bottom-color"));

请注意border-colorcomputed,无法通过这种方式检索。

您也可以 convert the rgba value to HEX format 使其更具可读性和方便性。


或者,您可以只检查 input 元素是否有 errorinput-validation-error 类:

assertEquals("block error input-validation-error", element.getAttribute("class"));

谢谢,您的上次更新成功了。我不得不改变一件事,但现在的代码是:

assertEquals("rgba(224, 66, 40, 1)", driver.findElement(By.id("frm-Voornaam.Value")).getCssValue("border-bottom-color"));

我不得不用 rgba 广告 [ 1],现在可以了,谢谢!