使用Rselenium

时间:2019-01-14 09:47:22

标签: r rselenium

我需要使用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。还有另一个网站提供了相同的信息,但是我放弃了使用此功能,因为导航功能无法使用它:

https://rzn.mos.ru/

1 个答案:

答案 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']")