【发布时间】:2015-10-22 01:18:44
【问题描述】:
为了确保用户在我正在为其编写测试的网页上成功通过身份验证,将显示他/她的登录 ID -- 以下是用户成功通过身份验证时使用 firepath 的 HTML。
<a href="#">
user2@user2
::after
</a>
以下是使用页面源的 HTML
<a href="#">
user2@store2
</a>
我之所以发布两个 HTML 来源,是因为我不太确定哪个来源有助于故障排除。我得到的错误是
Timed out after 30000ms
下面是我正在使用的 Perl 代码。我正在使用 WWW::Selenium 模块。
my $locator = q{//a[contains(@href, "user2")]};
my $ret = $sel->wait_for_text_present($locator, 2000);
以下部分有效,但我想查看用户的登录 ID,我不想使用 click。
ret = $sel->click('//a[contains(@href,"#")]');
提前感谢您的任何提示。
【问题讨论】:
-
你试过
$ret = $driver->find_element('user2@user2', 'link_text');吗? -
您正在测试
href属性的值是否包含"user2"。它没有。改为测试a元素内的text。 -
@JeffC,在 WWW::Selenium 文档中,没有
find_element函数,但有一个get_attribute不起作用。 -
抱歉,我不熟悉 WWW::Selenium,所以我在没有查看文档的情况下重新调整了下面的答案。但是...我确实查看了文档,发现其中一个定位器是链接文本,例如
link=textPattern:Select the link (anchor) element which contains text matching the specified pattern. link=The link text。您应该可以使用此方法查找链接文本“user2@user2”。