1
use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;
use Text::Table; 
our ($a,$critical);

print "Enter text:";
$a = <>;
print "Enter critical value:";
$critical = <>;
print $a;
print $critical;
|
|
|
|
|
$sel->click_ok("//div[\@class='x-combo-list-inner']/div[8]");
my $v7 = $sel->get_text("//div[\@class='x-combo-list-inner']/div[8]");
print($v7 . "\n");
print($critical . "\n");
if ($critical eq $v7)
{
perform operations
}
else
{
don't perform operation
}

cmd i から入力したクリティカルの'Last 45 Days' 値 & div[8] から取得した値 & 上記のコードで v7 に保存した値も同じ('Last 45 Days')です。しかし、if ループに遭遇すると、操作は実行されません。これらの種類の文字列を比較する他の方法はありますか?

4

2 に答える 2

2

$critical に改行が追加されている可能性があります。chomp($critical); で削除してみてください。

于 2012-06-19T06:35:20.060 に答える
0

Kludas が言うように、 の最後に改行がある可能性が高いです$critical。それを削除するコードは確かに表示されず、返される文字列がget_text改行で終わる可能性は低いです。

文字列を表示するには ( NOTData::Dumpに注意) を使用することをお勧めします。モジュールをインストールしたら、それは単に問題です Data::Dumper

use Data::Dump;

dd $critical;
dd $v7;

印刷できないものは、適切な可視エスケープ コードとして表示されます。

于 2012-06-19T08:28:47.463 に答える