2016-12-14 1 views
0

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?

+0

Dans votre exemple en HTML vous avez un lien avec 'id =" oepLinkId "', mais dans votre objet de page vous utilisez ': id => 'reportLinkId'' – Evmorov

+0

@Evmorov Bonne prise. C'était une faute de frappe. J'ai mis à jour ma question. Le problème existe toujours. Merci! – fongfong

+0

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. –

Répondre

0

Voici ce qui s'est passé. La valeur de l'identifiant a été modifiée au cours du développement. Je l'ai mis à jour et ça a marché. Merci à tous!