我需要使用Rselenium抓取网站,但我遇到了问题-使用CSS选择器无法解析具有登录名和密码的字段
首先,我与远程服务建立了连接,并导航到了我感兴趣的网站。在处理所需信息之前,我必须先登录。我已经在另一个网站上进行了类似的操作,没有任何问题。现在,尽管很容易搜索此页面上的其他元素,但是findElement函数无法使用这些元素(登录名和密码字段)
remDr <- RSelenium::remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)
remDr$open()
remDr$navigate("https://aisrzn.ru/login/")
remDr$getTitle()
webElem <- remDr$findElement("css", "#menu-item-7476 > a > span > span") # here everything is okay
这是有问题的元素,我看到选择器看起来很奇怪:
webElem <- remDr$findElement("css", ".fieldsLayout > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2) > input:nth-child(1)")
硒消息:无法找到元素:.fieldsLayout> tbody:nth-child(1)> tr:nth-child(1)> td:nth-child(2)>输入:第n个孩子(1) 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html 构建信息:版本:'3.14.0',修订版本:'aacccce0',时间:'2018-08-02T20:13:22.693Z' 系统信息:主机:'0c3a6ca7c648',ip:'172.17.0.2',os.name:'Linux',os.arch:'amd64',os.version:'4.9.93-boot2docker',java.version:' 1.8.0_181' 驱动程序信息:driver.version:未知
错误:摘要:NoSuchElement 详细信息:使用给定的搜索参数无法在页面上找到元素。 类:org.openqa.selenium.NoSuchElementException 更多详细信息:运行errorDetails方法
我只需要通过Rselenium登录即可继续使用该网站。现在,我被堆积起来并寻求帮助。我的猜测是注册表单出了点问题-此区块中任何包含在内的元素都不会被解析。有人知道如何解决此问题吗?
P.S。还有另一个网站提供了相同的信息,但是我放弃了使用此功能,因为导航功能无法使用它:
答案 0 :(得分:0)
对于有问题的行中的字符串之一,应切换为单引号。这些都可以使用:
# Single quotes around the long outer string
webElem <- remDr$findElement("css", '#paneContent > form > div:nth-child(4) > table > tbody > tr:nth-child(1) > td > input[type="text"]')
# Single quotes around the short inner string
webElem <- remDr$findElement("css", "#paneContent > form > div:nth-child(4) > table > tbody > tr:nth-child(1) > td > input[type='text']")