开发者

how to select a particular row from a table?

I want to know how to select a particular row from a table, shown in a gadget.

On automating am getting the following code:

use strict;

use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;

my $sel = Test::WWW::Selenium->new( host => "localhost", 
                                    port => 4444, 
                                    browser => "*chrome", 
                                    browser_url => "http://10.102.163.3/" );

$sel->open_ok("/admin_ui/svm/html/main.html");
$sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img");    
$sel->click_ok("//input[\@value='Yes']");

Can anyone please explain the following line in the above coding?

$sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img");

Also, am getting the same recording, every time when i select a row and delete.

Can anyone please explain how to check for a particular value as 开发者_如何学Goshown in the above snapshot and then select that row and delete it?

Please explain me with code.

thanks in advance.


Can anyone please explain the following line in the above coding?
$sel->click_ok("//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img");

$sel is a reference to an object of type Test::WWW::Selenium

->click_ok() invokes the click_ok method of that object.

The argument to this method is a locator

"//table[1]/tbody/tr/td[1]/div/table/tbody/tr/td[2]/img" is an xpath expression that specifies the HTML element to be acted on.

// indicates that the locator type is an xpath expression.

table[1] specifies the first occurence of a table (where there may be several successive tables)

...

td[2] specifies the second occurence of a table data element.

The other parts should be obvious. Overall it specifies an image in the second column of a nested table.


(Update)

Can anyone please explain how to check for a particular value as shown in the above snapshot and then select that row

To select a tr that contains an element with an attribute named value with a value of "Yes" you can use

//*[@value="Yes"]/ancestor::tr

I use the following code to test xpath expressions

#!/usr/bin/perl
use strict;
use warnings;
use XML::LibXML;

my $xml = <<END;
<table>
  <tr>
    <td>Foo</td>
    <td><input value="Yes" /></td>
  </tr>
  <tr>
    <td>bar</td>
    <td><a href="/woo.html">Woo</a></td>
  </tr>
</table>
END

my $xpath = '//*[@value="Yes"]/ancestor::tr';


my $parser = XML::LibXML->new;
my $doc = $parser->parse_string($xml);
my $n = 0;
for my $node ($doc->findnodes($xpath)) {
  print ++$n, ': ', $node->toString(), "\n";
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜