在新窗口中打开的链接-Cheezy页面对象带有selenium的ruby gem



我是页面对象和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>'

最新更新