如何使用Perl的Selenium :: Remote :: Driver返回WebElement的文本?

时间:2013-08-21 21:44:11

标签: perl xpath selenium selenium-webdriver

我觉得我必须遗漏一些明显的东西。我知道WebElement的XPath,我想将该元素中的文本与某个字符串进行比较。

假设该元素的XPath为/html/body/div/a/strong,我想将其与$str进行比较。

因此它会显示在...<strong>find this string</strong>

等源代码中

所以我说

use strict;
use warnings;
use Selenium::Remote::Driver;

# Fire up a Selenium object, get to the page, etc..

Test::More::ok($sel->find_element("/html/body/div/a") eq $str, "Text matched");

当我运行它时,测试应该通过时失败。当我尝试打印find_element($xpath)的值时,我得到一些哈希引用。我已经搜索了一些并找到示例告诉我尝试find_element($xpath)->get_text(),但get_text()甚至不是原始包中的方法。这是过去实际工作的过时方法吗?

此模块的大多数在线示例都说“很容易!”然后告诉我如何get_title()但不知道如何检查XPath中的文本。我可能会发疯。

1 个答案:

答案 0 :(得分:3)

跟进我们的评论主题,我将其作为答案发布:

Selenium :: Remote :: WebDriver肯定有一个名为find_element()的方法,而Selenium :: Remote :: WebElement肯定有一个名为get_text()的方法。

像这样......

my $text = $sel->find_element(...)->get_text();

...我的工作正常,但如果找不到元素,它看起来会出错。