【问题标题】:Rselenium select dropdown menuRselenium 选择下拉菜单
【发布时间】:2020-05-18 19:09:07
【问题描述】:

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

我想点击下拉菜单的字段是日期范围,所以我在html代码中查找(见下图)并找到

class="select2-choice"

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

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

然后我想在下拉字段中选择“自定义”,所以我在 html 代码中查找(见下图),发现它在

select id="namedRange-3640"

选项是

value="custom"

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

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

webElem$clickElement()

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

非常感谢

【问题讨论】:

    标签: html r selenium web-scraping rselenium


    【解决方案1】:

    这可能是解决方案。

    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

    【讨论】:

    • 嗨慢学习感谢您的回答。我同意这项工作使用简单的下拉菜单,即选择类型菜单,但显然 select2 下拉菜单要复杂得多。每当打开下拉菜单时查看 html 时,“select2-drop”类发生了变化,从那里更改了选择字段中的选项,如上面的 html 代码。这是我正在谈论的附加 select2-drop 类。 i.stack.imgur.com/Qq7Be.png 位于 html 的最底部。如您所见,两者都链接到 id: "s2id_autogen5"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多