'Extract href tag using Rselenium

I am trying to get the store address of apple stores for multiple countries using Rselenium.

library(RSelenium)
library(tidyverse)
library(netstat)

# start the server
rs_driver_object <- rsDriver(browser = "chrome",
                             chromever = "100.0.4896.60",
                             verbose = F,
                             port = free_port())

# create a client object
remDr <- rs_driver_object$client

# maximise window size
remDr$maxWindowSize()

# navigate to the website
remDr$navigate("https://www.apple.com/uk/retail/storelist/")

# click on search bar
search_box <- remDr$findElement(using = "id", "dropdown")
country_name <- "United States" # for a single country. I can loop over multiple countries

# in the search box, pass on the country name and hit enter
search_box$sendKeysToElement(list(country_name, key = "enter"))
search_box$clickElement() # I am not sure if I need to click but I am doing anyway 

The page now shows me the location of each store. Each store has a hyperlink that will take me to the store website where the full address is which I want to extract

However, I am stuck on how do I click on individual store address in the last step. I thought I will get the href for all the stores in the particular page

store_address <- remDr$findElement(using = 'class', 'store-address')
store_address$getElementAttribute('href')

But it returns me an empty list. How do I go from here?



Solution 1:[1]

After obtaining page with list of stores we can do,

link = remDr$getPageSource()[[1]] %>%
  read_html() %>% html_nodes('.state') %>% html_nodes('a') %>% html_attr('href') %>% paste0('https://www.apple.com', .)

[1] "https://www.apple.com/retail/thesummit/"              "https://www.apple.com/retail/bridgestreet/"          
[3] "https://www.apple.com/retail/anchorage5thavenuemall/" "https://www.apple.com/retail/chandlerfashioncenter/" 
[5] "https://www.apple.com/retail/santanvillage/"          "https://www.apple.com/retail/arrowhead/"  

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Nad Pat