【问题标题】:Rselenium: Skip error and keep running. How can by pass it?Rselenium:跳过错误并继续运行。怎么能通过呢?
【发布时间】:2022-08-17 02:17:49
【问题描述】:

我试图抓取一些网站,但有时有些网站不包含代码使用findElement 查找的按钮。所以当代码没有找到我要找的东西时,它会给我以下错误:

Selenium message:no such element: Unable to locate element: {\"method\":\"link text\",\"selector\":\"see more\"}
  (Session info: chrome=104.0.5112.79)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: \'4.0.0-alpha-2\', revision: \'f148142cf8\', time: \'2019-07-01T21:30:10\'
System info: host: \'192.168.1.12\', ip: \'fe80:0:0:0:4c4:faba:fe32:b5f4%en0\', os.name: \'Mac OS X\', os.arch: \'x86_64\', os.version: \'12.5\', java.version: \'1.8.0_341\'
Driver info: driver.version: unknown

我尝试使用 findElements但在那之后它应该单击元素,因此无法使用该功能。

任何解决方法?

  • 您可以使用tryCatchpurrr::possibly
  • 你如何用这个seedesc= RemDr$findElement(using = \"link text\", value = \"see more\")$clickElement() 打电话给tryCatch? @akrun
  • 未测试,也许你想要tryCatch({RemDr$findElement(using = \"link text\", value = \"see more\")$clickElement()}, error = function(e) NA_character_)
  • 继续发生同样的错误@akrun。硒出错后代码停止
  • 这是一个类似的case,它可能对你有用

标签: r selenium web-scraping rselenium


【解决方案1】:

使用可以在列表中访问的 findElements():

seedesc <- RemDr$findElements(using = "link text", value = "see more")
seedesc[[1]]$clickElement()

#to click the second found element if there is one
seedesc[[2]]$clickElement() #etc...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2014-05-18
    • 2013-06-23
    相关资源
    最近更新 更多