【问题标题】:How do you click an anchor tag link using rselenium and rvest in R?如何在 R 中使用 rselenium 和 rvest 单击锚标记链接?
【发布时间】:2020-08-02 04:29:12
【问题描述】:

我一直在使用 rselenium 和 rvest 包在 R 中练习网页抓取。因此,对于登录许多网站,都有一个登录按钮,单击该按钮时会打开一个弹出窗口,询问用户 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()

大多数情况下,我在这一行中遇到了诸如意外符号之类的错误

如何解决这个问题?以及如何在弹出窗口打开后发送我的用户名和密码?提前致谢。

【问题讨论】:

  • 能否提供网站地址以便我提供帮助?您尝试浏览和登录的网站是哪个?
  • 让我知道下面的答案如何。它对我有用。

标签: r selenium selenium-webdriver web-scraping rvest


【解决方案1】:

更新

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

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

请注意,我添加了单击另一个按钮; cookies 接受按钮

【讨论】:

  • 嘿,Yach,所以您的代码正在将我的用户 ID 和密码发送到页面上的注册表单。登录按钮位于顶部,已注册用户需要点击该按钮才能登录。
  • 为什么你必须点击它,因为你可以使用它的地址导航到它?
  • 我发布了一个替代方案,以防你想点击而不是导航
  • 非常感谢您的帮助。我特别要求单击按钮,因为它还可以帮助我浏览其他网站。代码完美运行。
  • 很高兴他通常会帮助您,我实际上怀疑您的大部分注意力是如何单击按钮。但它奏效了吗?因为我才意识到它实际上提交的用户名和密码信息不是给锚页面而是之前的。如果您需要特定的解决方法,我刚刚更新了答案中的代码以解决此问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
相关资源
最近更新 更多