Selenium Webdriver—要选择下拉列表值,需要更长的时间
我已经从下拉列表中检查了一个值。但是下拉列表不在select类中,它位于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
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也会有所帮助。