将返回的变量传递给其他方法

时间:2016-02-01 21:29:04

标签: java selenium selenium-webdriver

我有问题,因为我有返回变量的方法,我需要比较它,但我不知道如何得到它...

我的代码:

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上更改了货币(左上角)并想要比较

1 个答案:

答案 0 :(得分:1)

首先,您在char数组(getCurrentCurrencySymbol())和char(nowa)之间进行比较。前者是对象,而后者是原始数据类型。当你试图比较两者时,你会得到一些奇怪的值,比如你看到的C @ 74f6c5d8。这是char数组实际存储位置的地址。

我建议你从char数组改为简单的char,因为它们应该是货币符号。这样,两个值之间的比较将被简化。