Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium Webdriver—要选择下拉列表值,需要更长的时间_Selenium_Drop Down Menu_Selenium Webdriver - Fatal编程技术网

Selenium Webdriver—要选择下拉列表值,需要更长的时间

Selenium Webdriver—要选择下拉列表值,需要更长的时间,selenium,drop-down-menu,selenium-webdriver,Selenium,Drop Down Menu,Selenium Webdriver,我已经从下拉列表中检查了一个值。但是下拉列表不在select类中,它位于ul->li下。因此,下拉列表在下有一个值列表。我使用WebElements列表获得了所有元素列表,并尝试单击一个元素。 对于其他下拉列表,它可以正常工作,但是从下拉列表中单击一个元素(值)需要1分钟(持续时间很长)。请向我建议解决问题的方法 我使用的方法是: List<WebElement> Modules=driver.findElements(By.xpath("//div[@class='t-popup

我已经从下拉列表中检查了一个值。但是下拉列表不在select类中,它位于
ul->li
下。因此,下拉列表在
  • 下有一个值列表。我使用WebElements列表获得了所有元素列表,并尝试单击一个元素。 对于其他下拉列表,它可以正常工作,但是从下拉列表中单击一个元素(值)需要1分钟(持续时间很长)。请向我建议解决问题的方法

    我使用的方法是:

    List<WebElement> Modules=driver.findElements(By.xpath("//div[@class='t-popup t-group']/ul/li")); 
    for ( WebElement we: Modules) { //System.out.println(we.getText());
        driver.manage().timeouts().implicitlyWait(10l, TimeUnit.SECONDS);
        if ( we.getText().contains(Attribute)) { 
          we.click(); 
        } 
        waitgen(1000); 
    }
    
    List Modules=driver.findElements(By.xpath(“//div[@class='t-popup t-group']/ul/li”);
    for(WebElement-we:Modules){//System.out.println(we.getText());
    driver.manage().timeouts().implicitlyWait(10l,TimeUnit.SECONDS);
    如果(we.getText().contains(Attribute)){
    we.click();
    } 
    waitgen(1000);
    }
    
    为什么要通过循环来单击指定的元素

    尝试使用以下逻辑单击指定的元素

    //Clicking on div
    driver.findElement(By.cssSelector("div.t-popup.t-group")).click();
    //clicking on li based on text
    String attribute="HtmlPath";
    driver.findElement(By.xpath("//div[@class='t-popup t-group']//li[text()='"+attribute+"']")).click();
    

    我使用的方法是:List Modules=driver.findElements(By.xpath(“//div[@class='t-popup t-group']]/ul/li”);对于(WebElement-we:Modules){//System.out.println(we.getText());driver.manage().timeouts().implicitlyWait(10l,TimeUnit.SECONDS);if(we.getText().contains(Attribute)){we.click();}waitgen(1000);}什么是
    waitgen
    ?如果它等待,那么这就是一分钟延迟的原因。直接点击
    Select
    元素,如@santossarma的答案所示,将避免循环;不调用waitgen也会有所帮助。