有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java自动完成文本框第一选项选择

我想选择自动完成文本框中显示的第一个选项。下面是我尝试过但没有得到所需输出的代码

代码:

public void clickSublink() throws IOException, InterruptedException {   
    System.setProperty("webdriver.chrome.driver","F:\\Amitha\\chromedriver.exe");
    WebDriver dr=new ChromeDriver();
    dr.get("http://demoqa.com/autocomplete/");
    dr.findElement(By.xpath("//input[@id='tags']")).sendKeys("b");
    dr.findElement(By.xpath("//ul[@id='ui-id-1']//child::li")).click();
}

共 (2) 个答案

  1. # 1 楼答案

    如果只想选择第一个选项,可以在selenium中使用keys类。请在下面找到相同的代码

    public void clickSublink() throws IOException, InterruptedException {   
    System.setProperty("webdriver.chrome.driver","F:\\Amitha\\chromedriver.exe");
    WebDriver dr=new ChromeDriver();
    dr.get("http://demoqa.com/autocomplete/");
    dr.findElement(By.xpath("//input[@id='tags']")).sendKeys("b");
    dr.findElement(By.xpath("//input[@id='tags']")).sendKeys(Keys.DOWN, Keys.ENTER);}
    
  2. # 2 楼答案

    另一种方法:

    library (XML)
    library(RCurl)
    data=htmlParse("http://demoqa.com/autocomplete/")
    result=xpathSApply(data,"normalize-space(substring-before(substring-after(//div[@class='demo-frame']//script[last()]/text(),'['),']'))")
    reg=gsub('\"',"",result)
    final=unlist(strsplit(reg,", "))
    

    产生:

    [1] "ActionScript" "AppleScript"  "Asp"          "BASIC"        "C"            "C++"         
    [7] "Clojure"      "COBOL"        "ColdFusion"   "Erlang"       "Fortran"      "Groovy"      
    [13] "Haskell"      "Java"         "JavaScript"   "Lisp"         "Perl"         "PHP"         
    [19] "Python"       "Ruby"         "Scala"        "Scheme"