硒选择下拉菜单

时间:2020-05-18 19:09:07

标签: html r selenium web-scraping rselenium

嗨,我正在尝试使用Rselenium选择下拉菜单。

我要单击下拉菜单的字段是“日期范围”,因此我在html代码中查找(请参见下图)并找到

class="select2-choice"

成为指针,所以我调用命令以单击下拉菜单

webElem <- rd$client$findElement(using = 'xpath',
                             value = '//*[@class="select2-choice"]')
webElem$clickElement()

enter image description here

然后我要在下拉字段中选择“自定义”,因此我在html代码中查找(请参见下图),发现它位于

select id="namedRange-3640"

,选项为

value="custom"

enter image description here

所以我尝试再次调用Rselenium命令以单击此自定义字段

webElem <- rd$client$findElement(using = 'xpath', "//select[@id='namedRange-3640']/option[@value='custom']")

webElem$clickElement()

但是,在网页中没有任何动作,代码也没有警告。我在其他网页上尝试了更简单的结构,例如下拉菜单上的W3C教程,它可以工作。但是在这种情况下,它似乎稍微复杂一点,我以前从未遇到过这种叫做ng-repeat的东西。有人知道如何选择自定义字段吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

这可能是解决方案。

library(RSelenium)
remDr <- remoteDriver(browser=c("firefox"), port = 4445)
remDr$open()

remDr$navigate("your_web_site.com")

frame_ws<- remDr$findElement(using='id', value="iframeResult")
remDr$switchToFrame(frame_ws)

#You can replace "today" with all elements the list
option <- remDr$findElement(using = 'xpath', "//*/option[@value = 'today']") 
option$clickElement()

如果您想深入讨论,您应该访问here