【问题标题】:links opening in new window - Cheezy page-object ruby gem with selenium链接在新窗口中打开 - Cheezy page-object ruby​​ gem with selenium
【发布时间】:2016-07-31 14:23:37
【问题描述】:

我是 page-object 和 selenium 的新手,但到目前为止一切正常。我为此页面测试的最后一个元素是社交媒体链接。

为了检查链接是否正确,我通常单击它们,然后使用 selenium 的 driver.current_url 来检查窗口的 url 是否是我们对该链接的期望,但是这些社交媒体按钮正在以新的方式打开链接窗口(这只是他们的静态 facebook 页面,而不是登录等)导致测试失败

有没有办法:

1-强制链接在当前窗口中打开,或者

2-从link_element中提取目标url?

这就是 atm 测试的样子:

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 方法作为某种异常来手动获取链接的属性,我宁愿不要一些元素在页面模型中,而有些元素在测试中本身,但我可以看到它可能是必要的

【问题讨论】:

    标签: ruby selenium page-object-gem


    【解决方案1】:

    如果您只是检查链接是否导航到正确的 URL,检查链接的 href 属性将是最快的。 PageObject::Elements::Link 元素为此有一个 href method

    假设facebook_icon_link 是您由访问器方法定义的链接,您将调用:

    facebook_icon_link_element.href
    

    换句话说,断言可以写成:

    assert facebook_icon_link_element.href == '<facebookurlforsite>'
    

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 2015-02-09
      • 2020-02-05
      • 2013-08-10
      • 2019-06-20
      • 1970-01-01
      相关资源
      最近更新 更多