我正在尝试从动态Web元素获取数据,并且经过一些逻辑测试后我想做一些操作(取决于if和else块的结果)。如果动态webelemnt没有任何值,即如果它的null或0,我无法弄清楚该做什么。 在此代码中==>> String error = wb.getText(); ,当我们有一些错误的值然后它被打印,但是当它没有任何值时,它将不会打印任何东西,并且它只在第一个周期时打印而且在单词之后它不打印任何东西。
Code-
int i=1;
int j=1;
while(i==1){
String error = wb.getText();
if(! error.equals(null)){
k0 = Integer.parseInt(error);
}//if for massage
else if(error.equals(null)){
k0 =0;
}//else if
int expected =16;
if(expected==k0){
Thread.sleep(4000);
System.out.println("Readable Massage = "+error +"k0 = "+k0);
}else{
driver.navigate().refresh();
new Play_Music_Using_MouseLocation().play_music_using_mouse_location();
i++;
}//else
//Counting number of runs
System.out.println("Number of run = " + j);
j++;
}//while
Output at the console --
Readable Massage = 16 k0 = 16
Number of run = 1
Readable Massage = 16
Number of run = 2
Readable Massage = 16
Number of run = 3
Readable Massage = 16
Number of run = 4
Readable Massage = 16
Number of run = 5
Readable Massage = 16
Number of run = 6
正如您可以从输出中看到的,它仅在第一次运行时解析它后才打印k0的值,而在单词后我只得到错误值。 我在逻辑上做错了吗?
答案 0 :(得分:1)
if(!error.equals(null))应该是 if(error!= null)
如果您还想检查错误字符串是否为空,则条件应为:
if(error!=null && !error.isEmpty())
注意:还要确保 wb 本身不为空
if( wb!=null )
{// your logic
}
else
{// Logic when it's null
}