Как щелкнуть ссылку тега привязки с помощью rselenium и rvest in R? - PullRequest
2 голосов
/ 19 апреля 2020

Я практиковался в очистке веб-страниц в R с пакетами rselenium и rvest. Таким образом, для входа на многие веб-сайты есть кнопка входа, при нажатии которой открывается всплывающее окно с запросом идентификатора пользователя и пароля. Я пробовал следующие коды, чтобы щелкнуть тот якорный тег, где присутствует ссылка для входа, но ни один из них не работает.

Это html тега привязки (пример)

<a href="/profile/login_input.htm?userOriginHook=HEADER_SIGNIN_LINK" class="track-click gd-btn-locked-transparent susiLink sign-in strong nowrap" target="_top" data-ga-lbl="Sign In"> Sign In</a>

Вот коды, которые я пробовал:

1.

user<-remDr$findElement(using = 'href',"/profile/login_input.htm?userOriginHook=HEADER_SIGNIN_LINK")
user$sendKeysToElement(list("",key="enter"))

2.

driver.findElement(By.xpath("//a[text()='Sign In']")).click()

3.

driver.findElement(By.linkText("Sign In")).click()

4.

remDr$findElement(xpath="//a[contains(text(),'Sign In')]")).click()

В основном, я получаю ошибки, подобные неожиданному символу в этой строке

Как go об этом? А как отправить мой логин и пароль после открытия всплывающего окна? Заранее спасибо.

1 Ответ

1 голос
/ 19 апреля 2020

ОБНОВЛЕНИЕ

Если вы хотите нажать кнопку Войти вместо прямой навигации по ее веб-адресу, вы можете выполнить весь процесс следующим образом:

page<-"https://www.glassdoor.co.in"
remDr$navigate(page)
accept_cokies_btn <- remDr$findElement(using = "xpath", '//*[@id="onetrust-accept-btn-handler"]')
accept_cokies_btn$clickElement()
signin <- remDr$findElement(using = "xpath", '//*[@id="TopNav"]/nav/div/div/div[4]/div[1]/a')
signin$clickElement()

И после того же, что и ранее для отправки вашего имени пользователя и пароля:

username_btn <- remDr$findElement(using ="name" , "username")
username_btn$sendKeysToElement(list("add username here"))
pass_btn <- remDr$findElement(using = "name", "password")
pass_btn$sendKeysToElement(list("add password here", "\uE007"))

Обратите внимание, что я добавил нажатие еще на одну кнопку; кнопка принятия куки .

...