我需要测试网页后面页面底部形成按钮的网站 用户滚动页面两次。
我编写了一个小脚本来测试是否形成了所需的元素。 即使在页面中形成了必需的元素,测试的条件也始终返回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);
}
}
有没有办法测试是否在脚本中形成了按钮元素?
答案 0 :(得分:0)
当找不到元素时,所有这些函数都返回0。
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();
查看更多方法