如何在 R 中使用 rselenium 和 rvest 单击锚标记 link?
How do you click an anchor tag link using rselenium and rvest in R?
我一直在使用 rselenium 和 rvest 包在 R 中练习网络抓取。因此,为了登录许多网站,有一个登录按钮,单击该按钮时会打开一个弹出窗口 window,要求输入用户 ID 和密码。我一直在尝试使用以下代码来单击存在登录 link 的锚标记,但 none 正在工作。
这是锚标签的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()
大多数情况下,我在这一行中收到诸如意外符号之类的错误
如何解决这个问题?以及如何在弹出 window 打开后发送我的用户名和密码?提前致谢。
更新
如果您想单击 登录 按钮而不是直接导航到其网址,您可以按照以下步骤完成整个过程:
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 接受按钮。
我一直在使用 rselenium 和 rvest 包在 R 中练习网络抓取。因此,为了登录许多网站,有一个登录按钮,单击该按钮时会打开一个弹出窗口 window,要求输入用户 ID 和密码。我一直在尝试使用以下代码来单击存在登录 link 的锚标记,但 none 正在工作。
这是锚标签的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()
大多数情况下,我在这一行中收到诸如意外符号之类的错误
如何解决这个问题?以及如何在弹出 window 打开后发送我的用户名和密码?提前致谢。
更新
如果您想单击 登录 按钮而不是直接导航到其网址,您可以按照以下步骤完成整个过程:
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 接受按钮。