2017-07-28 20 views
0

OP警告:我不擅長HTML。R - RSelenium,按下一步按鈕並將下拉選項更改爲25

我想使用RSelenium遠程驅動器(browserName ='phantomjs')來抓取登錄所需頁面上的一些鏈接。我能夠處理登錄部分,但是當我嘗試提取表格中的鏈接時,我無法刮除所有的鏈接,因爲;

1-表格有10行顯示的有限視圖。這可以使用下拉選項多達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 - 我不能在表的底部按下一個按鈕,看看在接下來的頁面中的鏈接進行更改。

Similarly, I think I was able to find all 4 buttons using findElement(). But when I run; 

buttons <- remDr$client$findElement("class name", "ag-paging-button") 
nextbutton <- buttons[[3]] 
nextbutton$click() 
nextbutton$clickElement() 

然後通過「href」運行鏈接提取我得到相同的10個鏈接,就好像什麼都沒發生過一樣。

我的問題可以通過完成第2部分來解決,但如果我能爲第一個問題得到答案,我將不勝感激。

下面是我的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>

回答

0

我能夠與mouseMoveToLocation()函數來做到這一點。當然,它需要根據網站本身使用的佈局進行修改。然而,它可能會帶來什麼好處;代碼如下所示。

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)