为什么 RSelenium 无法找到我的 xpath?

问题描述 投票:0回答:1

我必须在网站上反复执行搜索(https://franklin.genoox.com/clinical-db/home) 很久以前,我发现了 Rselenium 包,并且在之前的几次中我已经成功地使用了它(在绞尽脑汁之后,因为我对网络抓取真的很陌生)。这些元素始终是具有明确 ID 的输入类(易于查找)。 今天我需要再次开发一个脚本,使我能够在这个新网络上进行自动搜索。但我无法找到搜索栏的正确 xpath 来插入我的搜索。

我在需要书写的地方附上了搜索栏的图像。

我尝试了推荐的 Google Chrome 扩展程序,名为 SelectorGadget。据说它正确定位了 xpath。 SelectorGadget 告诉我搜索栏的 XPath 是这样的:

"//*[contains(concat(" ", @class, " "), concat(" ", "ng-touched", " " ))]"

首先,我自己不知道如何找到这个xpath。当我尝试“检查”网页并单击获取搜索栏的 xpath 时,我得到了一些非常不同的东西:

结果是:“/html/body/app-root/div/gnx-home-page/div/gnx-search/div2/input”

谁能解释一下这个区别吗?

此外,当我尝试查找元素时,我收到一条错误消息:

query <- remDr$findElement(using = "xpath", value = '//*[contains(concat( " ", @class, " " ), concat( " ", "ng-touched", " " ))]')

错误信息如下:

Selenium 消息:无法定位元素: //*[contains(concat( " ", @class, " " ), concat( " ", "ng-touched", " " ))] 有关此错误的文档,请访问:https://www.seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:'4.0.0-alpha-2',修订版:'f148142cf8',时间:'2019-07-01T21:30:10' 系统信息:主机:'PORTATIL_MARIA',ip:'192.168.8.102',os.name:'Windows 11',os.arch:'x86',os.version:'10.0',java.version:'1.8.0_401 ' 驱动程序信息:driver.version:未知

错误:摘要:NoSuchElement 详细信息:使用给定的搜索参数无法在页面上找到元素。 类: org.openqa.selenium.NoSuchElementException 更多详细信息:运行错误详细信息方法

如何解决这个问题?为什么我找不到正确的 XPath?

r web-scraping xpath rselenium findelement
1个回答
0
投票

尝试这些:

  • CSS 选择器:
    .search-wrapper > input
  • XPath:
    //*[@class='search-wrapper']/input

开发者工具中的测试似乎都有效。

请参阅这篇文章了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.