RSelenium 中按下按钮/加载网页

问题描述 投票:0回答:1

我正在尝试使用 RSelenium 实现搜索自动化,但遇到了巨大的困难。一切似乎都正常,但每当我运行代码来按下搜索按钮时,它似乎点击了但实际上没有搜索。我在这里搜索了与 RSelenium 相关的问题的历史,但没有找到有效的解决方案......这里聪明的人们有什么建议吗?下面代码的可重现示例,只需加载库并启动您选择的机器/驱动程序。

# Go to License Plate lookup page
mydriver$navigate("https://checktoprotect.org/vin-check/")

# Enter state
dropdown_element <- mydriver$findElement(using = "xpath", value='//*[@id="state-select"]/div[1]')
dropdown_element$clickElement()
state_element <- mydriver$findElement(using = "xpath", value='//*[@id="state-select"]/div[2]/div[23]')
state_element$clickElement()

# Enter License Plate
plate_element <- mydriver$findElement(using = "xpath", value='//*[@id="js-vin-input"]')
plate_element$sendKeysToElement(list("ELX1701"))

# Click submit
submit1_element <- mydriver$findElement(using = 'xpath', value = '//*[@id="js-vin-btn"]')
submit1_element$clickElement()
Sys.sleep(10)
r web-scraping rselenium
1个回答
0
投票

也许是更好、更轻松的方法(

rselenium
是我的敌人):

library(tidyverse)
library(rvest)

session <- "https://checktoprotect.org/vin-check/" %>% 
  session()

result <- session %>% 
  html_form() %>% 
  pluck(1) %>% 
  html_form_set(state_id = "MI", 
                plate_number = "ELX1701") %>% 
  html_form_submit() %>% 
  read_html() %>% 
  html_elements("strong , .recalls__no-results p , .clear , .recalls__model") %>% 
  html_text()

> result
[1] "0 Open Recalls for:"                                                                                    
[2] "2015 GMC SIERRA 1500"                                                                                   
[3] "1GTR1TEH8FZ298242"                                                                                      
[4] "MI - ELX1701"                                                                                           
[5] "New recalls are issued regularly. We recommend checking every 3 months for new recalls on your vehicle."
© www.soinside.com 2019 - 2024. All rights reserved.