我有问题,因为我有返回变量的方法,我需要比较它,但我不知道如何得到它...
我的代码:
public char setCurrency(String currencyToSet) {
WebElement currencyVal = driver.findElement(By.name(currencyToSet.toUpperCase()));
String currencyName = currencyVal.getText();
System.out.println("Currency Name:" + currencyName);
currencyVal.click();
char[] currencyNameArray = currencyName.toCharArray();
char newCurrencySymbol = currencyNameArray[0];
System.out.println(newCurrencySymbol);
return newCurrencySymbol;
}
public char[] getCurrentCurrencySymbol(){
return currentCurrencySymbol.getText().toCharArray();//string??
}
我想阅读其他方法newCurrencySymbol
。
更新
@Test
public void changeCurrency() {
topNav.clickCurrencyDropDown();
char nowa = topNav.setCurrency("eur");
Assert.assertEquals(topNav.getCurrentCurrencySymbol(), nowa);
}
我收到错误:
java.lang.AssertionError:期待[€]但发现[[C @ 74f6c5d8]
应为€
,但为C@74f6c5d8
但是当我在第8行打印这个变量时,它会抛出€但不会传递它
我在enter link description here上更改了货币(左上角)并想要比较
答案 0 :(得分:1)
首先,您在char数组(getCurrentCurrencySymbol()
)和char(nowa
)之间进行比较。前者是对象,而后者是原始数据类型。当你试图比较两者时,你会得到一些奇怪的值,比如你看到的C @ 74f6c5d8。这是char数组实际存储位置的地址。
我建议你从char数组改为简单的char,因为它们应该是货币符号。这样,两个值之间的比较将被简化。