R - RSelenium,按下一步按钮&将下拉选项更改为25

时间:2017-07-28 18:07:22

标签: html r rselenium

OP警告:我不擅长HTML。

我正在尝试使用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>

1 个答案:

答案 0 :(得分: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)