0
我正在寻找验证链接被禁用的方法。这是一个子菜单链接,我将鼠标悬停在home menu
链接上,然后显示子菜单链接列表。由于某些用户角色,此用户无法访问报告页面,因此我需要验证该链接已禁用。 class
属性表明。红宝石黄瓜:使用页面对象获取属性
HTML:
<div id="homeMenu">
<ul>
<li class="has-sub">
<a class="homeButton" href="/report-web"></a>
<ul id="homeLinks">
<li id="oepLiId">
<a id="reportLinkId" class="disabledLinks" href="/report-web/openItems?subApp=OEP&rptid=15">
<span id="reportLinkName">Reporting Processing</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
我使用看跌期权如下:
link = @browser.find_element(:id, 'reportLinkId')
puts link.displayed?
puts link.enabled?
它打印:
true
true
的联系是displayed
和enabled
。我能想到的唯一方法是检查class
属性以查看它是否被定义为disabledLinks
。
使用页面对象:
link(:report_link, :id => 'reportLinkId')
class_attribute = report_link_element.attribute('class')
expect(class_attribute.eql?('disabledLinks')).to be true
不使用页面对象:
class_attribute = @browser.find_element(:id, 'reportLinkId').attribute('class')
但是,这两种方式,我得到了class_attribute
是空的。
环境:
Ruby: 1.9.3
Cucumber: 2.1.0
Selenium Webdriver: 2.53.4
page-object: 1.2.0
我缺少什么?
在你的HTML例子中,你有一个'id =“oepLinkId”'的链接,但是在你的页面对象中使用':id =>'reportLinkId'' – Evmorov
@Evmorov好的。这是一个错字。我更新了我的问题。问题依然存在。谢谢! – fongfong
你的代码在简单的页面上可以正常工作。您是否在只有该链接的页面上尝试过您的代码?你使用什么浏览器(我试过Chrome和IE11)。我使用Ruby 2.3,但似乎不太可能成为问题。 –