Je cherche un moyen de vérifier que le lien est désactivé. C'est un lien de sous-menu, je passe sur le lien home menu
, puis la liste des liens de sous-menu. En raison de certains rôles utilisateur, cet utilisateur ne peut pas accéder à la page de rapport, je dois donc vérifier que le lien est désactivé. L'attribut class
indique cela.Ruby concombre: utiliser l'objet page pour obtenir l'attribut
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>
J'utilise puts comme ci-dessous:
link = @browser.find_element(:id, 'reportLinkId')
puts link.displayed?
puts link.enabled?
Il imprime:
true
true
Le lien est displayed
et enabled
. La seule façon que je peux penser est de vérifier l'attribut class
pour voir si elle est définie comme disabledLinks
.
utilisation objet page:
link(:report_link, :id => 'reportLinkId')
class_attribute = report_link_element.attribute('class')
expect(class_attribute.eql?('disabledLinks')).to be true
Ne pas utiliser l'objet page:
class_attribute = @browser.find_element(:id, 'reportLinkId').attribute('class')
Cependant, dans les deux sens, je me suis class_attribute
est vide.
Environnement:
Ruby: 1.9.3
Cucumber: 2.1.0
Selenium Webdriver: 2.53.4
page-object: 1.2.0
Qu'est-ce que je manque?
Dans votre exemple en HTML vous avez un lien avec 'id =" oepLinkId "', mais dans votre objet de page vous utilisez ': id => 'reportLinkId'' – Evmorov
@Evmorov Bonne prise. C'était une faute de frappe. J'ai mis à jour ma question. Le problème existe toujours. Merci! – fongfong
Votre code fonctionne bien pour moi sur une simple page. Avez-vous essayé votre code sur une page qui a juste ce lien? Quel navigateur utilisez-vous (j'ai essayé Chrome et IE11). J'utilisais Ruby 2.3, mais semble moins susceptible d'être le problème. –