如何使用seleniumjava打印drowdown中的选定选项



只想在从下拉列表中选择选项后打印所选选项的值。

package Webbasics;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
public class ecommerce {
public static void main(String args[]) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","C:\Program Files\selenium\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://live.demoguru99.com/index.php/");
driver.manage().window().maximize();
driver.findElement(By.xpath("//*[@id="nav"]//li[1]/a")).click();

Select sortBy=new Select(driver.findElement(By.xpath("(//select[contains(@title,"Sort By")])[1]")));

sortBy.selectByIndex(1);
Select sortBy1=new Select(driver.findElement(By.xpath("(//select[contains(@title,"Sort By")])[1]")));
WebElement selected=sortBy1.getFirstSelectedOption();

System.out.println(selected.getText());

}
}

我得到了合适的结果,但我认为这不是写两次精选课的最佳方式,所以你能帮我用更好的方式写吗

在选择下拉元素后,您有正确的方法再次查找元素,但在选择后,您应该等待一段时间才能使元素再次可见。

请参阅以下代码:

Select sortBy = new Select(driver.findElement(By.xpath("(//select[contains(@title,'Sort By')])[1]")));
sortBy.selectByIndex(1);
//wait here
WebDriverWait wait = new WebDriverWait(driver, 20);
sortBy = new Select(wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(//select[contains(@title,'Sort By')])[1]"))));
System.out.println(sortBy.getFirstSelectedOption().getText());

但在上面,我再次找到了元素,但没有为下拉列表创建新的变量名,仍然sortBy。尽管有了初始化,新的变量也应该可以工作。

不要忘记导入以下内容:

import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;

参考讨论

首先,您必须等待元素可见。其次,使用此代码

Select select = new Select("Element");
WebElement tmp = select.getFirstSelectedOption();

相关内容

  • 没有找到相关文章

最新更新