java - 当我们使用 WebElement 的 obj 方法 .getCssValue("font-family") 时,TestNG 的 SoftAsert.assertEquals(actual,expected) 方法无法正常运行
问题描述
我正在使用Selenium-server-standalone-3.141.59.jar文件和testNG 版本 6.14.3。使用这个我想比较 Web Element font-family 作为输入硬编码值并使用 selenium driver.findElement从网站获取。现在我已经制作了方法SoftAssert,因为下面的代码已经提到
这是我尝试过的SoftAssert。创建方法并作为参数传递WebElement obj,fontNameValid作为值ProximaNova。现在我从HTML中得到的 font-family是 ' ProximaNova-Light ' 理想情况下,一旦我们添加了assertEqual方法, SoftAssert 应该将其检测为错误,但它会通过测试用例。请帮忙。
CheckCSS.java
public static SoftAssert webElement_Check_CSS(WebElement obj, String fontNameValid) {
String fontName1 = obj.getCssValue("font-family");
System.out.println("Font Name from HTML :------->" + fontName1);
System.out.println("Font Name as input :------->" + fontNameValid);
softAssert.assertEquals(fontNameValid, fontName1,"WebElement is ["+obj.getText()+"] and Font name is not as per visuals");
}
DemoTest.java
@Test
public void Header(){
System.out.println("++++++contactno+++++++++");
String fontFamily ="proximanova";
WebElement contact = driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/a[2]"));
softAssert = CheckCSS.webElement_Check_CSS(contact,fontFamily);
//contact.click();
}
Starting ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) on port 36987
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1569829278.198][WARNING]: This version of ChromeDriver has not been tested with Chrome version 77.
Sep 30, 2019 1:11:19 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
++++++contact no+++++++++
Font Name from HTML :------->ProximaNova-Light
Font Name as input :------->proximanova
Font Size:-------->15px
rgba(255, 232, 214, 1)
Font colour converted to hex:#ffe8d6
text-align:-------->center
PASSED: Header
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
解决方案
你缺少的是
softAssert.assertAll();
这将在运行所有与 softassert 相关的断言测试后给出结果。
SoftAssert softAssert = new SoftAssert();
String ActualErrorMEssage = firstNameerrorXpath.getText;
String ActualErrorMEssage2 = secondNameNameerrorXpath.getText;
softAssert.assertEquals(ActualErrorMEssage,ExpectedErrorMEssage);
softAssert.assertEquals(ActualErrorMEssage2,ExpectedErrorMEssage);
softAssert.assertAll();
推荐阅读
- python-3.x - 使用 selenium 和 python 自动化 WhatsApp
- ios - 检测应用程序何时关闭,终止但在手机关闭时忽略
- java - Spring Security 默认登录表单无法加载 CSS 文件(ERR_CONNECTION_TIMED_OUT)
- typescript - 当变量类型为接口时,是否需要为实现构造函数添加泛型?
- javascript - 样式引导单选按钮看起来像带有表单验证的普通按钮
- python - 来自 imsave 的 dpi 选项
- sapui5 - 方法 clearTimeout 在重置之前不起作用
- c++ - 模板类方法的部分特化或实例化
- tabulator - Tabulator 4.2:排序器:“日期”不起作用?
- javascript - 如何向 Rails simple_form 添加 Javascript 验证?