1

我觉得我一定遗漏了一些明显的东西。我知道 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 中的文本。我可能要疯了。

4

1 回答 1

4

跟进我们的评论线程,我将其发布为答案:

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

像这样的东西...

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

...对我来说效果很好,尽管如果找不到该元素,它看起来会出错。

于 2013-08-26T23:00:13.773 回答