2017-07-28 1 views
0

OP Avertissement: Je ne suis pas très bon en HTML.R - RSelenium, appuyez sur le bouton Suivant et modifiez les options de la liste déroulante à 25

J'essaie d'utiliser RSelenium remote-drive (browserName = 'phantomjs') pour gratter certains liens sur une page de connexion requise. J'étais capable de gérer la partie de connexion mais quand j'essaye d'extraire les liens dans la table, je ne peux pas les gratter tous parce que;

1- La table a une vue limitée des affichages à 10 rangées. Ceci peut être modifié en utilisant l'option déroulant jusqu'à 25.

Things I have tried: 

option <- remDr$findElement(using = 'xpath', "//*/option[@value = '25']") 
option$clickElement() 

As a result I get the ERROR: Element is hidden 

2- Je ne peux pas appuyer sur le bouton suivant au bas de la table pour voir les liens dans la page suivante. Ensuite, exécutez l'extraction de lien par "href" Je reçois les mêmes 10 liens comme si rien ne s'était passé.

Mon problème peut être résolu en obtenant simplement la partie 2, mais j'apprécierais si je pouvais obtenir une réponse pour le premier.

Voici à quoi ressemblent les blocs sélectionnés de mon code source HTML.

<div class="pxl-aggrid-pagesize"> 
 
    "Displaying: " 
 
    
 
    <select id="pxl-ag-grid-pageSelect"> 
 
     <option value="10">10</option> 
 
     <option value="15">15</option> 
 
     <option value="20">20</option> 
 
     <option value="25">25</option> 
 
    </select> 
 
</div> 
 
    
 
    
 
    
 
    
 
<div class="ag-paging-panel ag-font-style"> 
 
    <span class="ag-paging-page-summary-panel"> 
 
     <button class="ag-paging-button" ref="btFirst" disabled type="button">First</button> 
 
     <button class="ag-paging-button" ref="btPrevious" disabled type="button">Previous</button> 
 
     " 
 
       Page " 
 
     <span ref="lbCurrent">1</span> 
 
     " of " 
 
     <span ref="lbTotal">0</span> 
 
     <button class="ag-paging-button" ref="btNext" disabled type="button">Next</button> 
 
     <button class="ag-paging-button" ref="btLast" disabled type="button">Last</button>

Répondre

0

j'ai pu le faire avec la fonction mouseMoveToLocation(). Sûrement, il faudrait une modification basée sur la mise en page utilisée par le site lui-même. Cependant, pour tout bien qu'il pourrait; le code est joint ci-dessous.

allButtons <- remDr$client$findElements("xpath", "//button[@class='ag-paging-button']") 
    allButtonsText <- sapply(allButtons, function(x)x$getElementText()) 
    nextButtonNumber <- grep('Next', unlist(allButtonsText))  

    remDr$client$mouseMoveToLocation(webElement=allButtons[[nextButtonNumber]]) 
    remDr$client$click(1)