我觉得我必须遗漏一些明显的东西。我知道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中的文本。我可能会发疯。
答案 0 :(得分:3)
跟进我们的评论主题,我将其作为答案发布:
Selenium :: Remote :: WebDriver肯定有一个名为find_element()
的方法,而Selenium :: Remote :: WebElement肯定有一个名为get_text()
的方法。
像这样......
my $text = $sel->find_element(...)->get_text();
...我的工作正常,但如果找不到元素,它看起来会出错。