如何使用Selenium和Java从下拉框中获取选项?

时间:2015-01-18 22:25:34

标签: java selenium

我试图使用Selenium从Autotrader网站上检索所有汽车品牌。有一个下拉框根据在给定时间可供销售的汽车而变化。

我已尝试过stackoverflow上列出的许多解决方案,但我的代码并没有返回任何内容。

非常感谢任何帮助!

这是我的代码......

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.support.ui.Select;


public class AutotraderScraper {

    public static void main(String[] args) throws InterruptedException
    {

        WebDriver driver = new HtmlUnitDriver();

        // Visit autotrader website
        driver.get("http://www.autotrader.co.uk/");

        // Look for car make box
        Select select = new Select(driver.findElement(By.id("searchVehiclesMake")));

        // Get all options
        List<WebElement> allOptions = select.getOptions();

        // Iterate through available options
        java.util.Iterator<WebElement> i = allOptions.iterator();

        // Print options
        while(i.hasNext()) {
            WebElement row = i.next();
            System.out.println("Found an option!");
            System.out.println(row.getText());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这是一个重复的ID,正在本页面的两个不同位置使用。 enter image description here

我建议您使用xpath查找select element以下xpath可以使用

//h1[.='Find new & used cars']/..//*[@id='searchVehiclesMake']

Find new&amp; amp;中的目标元素二手车部分

enter image description here