代码之家  ›  专栏  ›  技术社区  ›  Mislav

使用rselenium单击下拉窗口中的值

  •  1
  • Mislav  · 技术社区  · 6 年前

    在以下网站上: https://www.bhtelecom.ba/index.php?id=7226&a=new 我想在单击“萨拉热窝(033)”后,在Apprad的下拉窗口(“Tuzlanski(035)”)中选择第二个值。我想用镭来做这个。

    我尝试了在StackOverflow上找到的10种不同的解决方案,但没有一种有效。我认为这是因为它是由javascript生成的。

    我尝试过的解决方案之一:

    remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L,
                          browserName = "chrome")
    remDr$open()
    remDr$navigate("https://www.bhtelecom.ba/index.php?id=7226&a=new")
    option <- remDr$findElement(using = 'xpath', "//select[@id='di']/option[@value='035']")
    option$clickElement()
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Andrei Suvorkov    6 年前

    首先,您必须单击输入字段:

    input<-remdr$findelement(using='xpath',“/input[@class='select dropdown']”)
    输入$ClickElement()。
    

    然后选项将可见,您可以使用rightxpath选择它们。

    选项<-remdr$findelement(using='xpath',“//span[包含(,'tuzlanski(035)')”)
    选项$clickelement())
    

    可能你需要使用这个:

    sys.sleep(5)wait 5 seconds
    

    如果脚本太快,将尝试在出现下拉之前选择下拉元素。

    摘要代码:

    input<-remdr$findelement(using='xpath',“/input[@class='select dropdown']”)
    输入$ClickElement()。
    
    系统睡眠(5)等待5秒钟
    
    选项<-remdr$findelement(使用='xpath',“//span[包含(,'tuzlanski(035)')”)
    选项$clickelement())
    

    您也有错误的xpath:

    然后选项将可见,您可以使用右键选择它们。xPath以下内容:

    option <- remDr$findElement(using = 'xpath', "//span[contains(., 'Tuzlanski (035)')]")
    option$clickElement()
    

    您可能需要使用:

    Sys.sleep(5) # wait 5 seconds
    

    如果脚本太快,将尝试在下拉列表出现之前选择下拉元素。

    摘要代码:

    input <- remDr$findElement(using = 'xpath', "//input[@class = 'select-dropdown']")
    input$clickElement()
    
    Sys.sleep(5) # wait 5 seconds
    
    option <- remDr$findElement(using = 'xpath', "//span[contains(., 'Tuzlanski (035)')]")
    option$clickElement()
    

    你也错了XPath以下内容: enter image description here