我是页面对象和selenium的新手,但到目前为止一切都很好。我为这个页面测试的最后一个元素是社交媒体链接。
为了检查链接是否正确,我通常会点击它们,然后使用selenium的driver.current_url来检查窗口的url是否是我们对该链接的期望,但这些社交媒体按钮正在新窗口中打开链接(这只是指向他们的静态脸书页面,而不是登录等),这会导致测试失败
有没有办法:
1-在当前窗口或中强制打开链接
2-从link_element中提取目标url?
这就是测试的样子
def test_facebook_button
assert @testpage.facebook_icon?, 'Facebook button not found'
@testpage.facebook_icon_link
sleep 5
assert @browser.current_url == '<facebookurlforsite>', 'Facebook link does not open expected URL'
end
如果不是这样的话,我猜我只会使用实际的selenium方法作为某种异常来手动获取链接的属性,我宁愿有些元素不在页面模型中,有些不在测试本身中,但我可以看到它可能是多么必要
如果只是检查链接是否导航到正确的URL,检查链接的href
属性将是最快的。PageObject::Elements::Link
元素具有用于此的href
方法。
假设facebook_icon_link
是由访问器方法定义的链接,您将调用:
facebook_icon_link_element.href
换句话说,断言可以写成:
assert facebook_icon_link_element.href == '<facebookurlforsite>'