Perl Selenium :: Remote ::驱动程序测试检查按钮元素是否形成?

时间:2015-04-27 06:07:06

标签: perl selenium selenium-webdriver

我需要测试网页后面页面底部形成按钮的网站 用户滚动页面两次。

我编写了一个小脚本来测试是否形成了所需的元素。 即使在页面中形成了必需的元素,测试的条件也始终返回false。

 use Selenium::Remote::Driver;
 use Scalar::Util qw/blessed reftype/;

 my $driver= Selenium::Remote::Driver->new;
 $driver->get('http://www.foo.com');

 while ( 1 ) {

     $query = $driver->find_element_by_xpath(q{//button[@class='button']});

     #to test the if the element is present
     if ( blessed($query) && $query->isa('Selenium::Remote::Driver') ) {

           $query->click;
           last;
     }
     else {

         #always goes into else loop
         #to go to the end of the webpage 
         my $script = q{window.scrollTo(0,document.body.scrollHeight);};
         my $elem = $driver->execute_script($script);
     }
 }

有没有办法测试是否在脚本中形成了按钮元素?

2 个答案:

答案 0 :(得分:0)

当找不到元素时,所有这些函数都返回0。

Read the doc carefully.

find_element_by_xpath

These functions all take a single STRING argument: the locator
search target of the element you want. If the element is found, we
will receive a WebElement. Otherwise, we will return 0. Note that
invoking methods on 0 will of course kill your script.

答案 1 :(得分:0)

使用以下内容查找元素

my $elem = $driver->find_element_by_xpath($locator);

如果这不返回0你找到了你的元素,那么你可以在下面运行:

检查元素是否显示

$elem->is_displayed();

检查元素是否隐藏

 $elem->is_hidden();

https://metacpan.org/pod/Selenium::Remote::WebElement

查看更多方法