如何使用rselenium和rvest在R中单击锚标记链接



我一直在用rselenium和rvest软件包练习R中的web抓取。因此,对于登录许多网站,都有一个登录按钮,点击后会打开一个弹出窗口,询问用户id和密码。我一直在尝试以下代码来单击存在登录链接的锚标记,但都不起作用。

这是锚标签的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()

大多数情况下,我会收到错误,比如这行中的意外符号

怎么办?弹出窗口打开后,如何发送我的用户id和密码?提前谢谢。

更新

如果你想点击登录按钮,而不是直接导航到其网址,你可以按如下方式完成整个过程:

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"))

注意,我已经添加了点击一个按钮;cookie接受按钮

最新更新