下拉无法选择

时间:2017-01-06 15:03:46

标签: selenium selenium-webdriver

我是Selenium webDriver的新手。以下是我用来选择日,月和日的代码。从Facebook下拉开始的一年。

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

        System.setProperty("webdriver.gecko.driver", "E:/Selenium/geckodriver-v0.11.1-win64/geckodriver.exe");          
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.facebook.com/");
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

        driver.findElement(By.id("u_0_1")).sendKeys("selenium");
        driver.findElement(By.id("u_0_3")).sendKeys("selenium");
        driver.findElement(By.id("u_0_5")).sendKeys("1234567891");
        driver.findElement(By.id("u_0_8")).sendKeys("1234567891");

        Thread.sleep(500);
        new Select(driver.findElement(By.xpath(".//*[@id='day']"))).selectByVisibleText("17");
        Thread.sleep(500);
        new Select(driver.findElement(By.id("month"))).selectByVisibleText("Aug");
        new Select(driver.findElement(By.id("year"))).selectByVisibleText("1988");

        driver.findElement(By.id("u_0_i")).click();

        driver.findElement(By.id("u_0_e"));

无法选择下拉列表。请帮助我。

提前致谢。 :)

3 个答案:

答案 0 :(得分:0)

由于您未在代码段中捕获所有必要的详细信息,因此我只能提供潜在客户。

WebElement selElem=driver.findElement(By.xpath(".//*[@id='day']")));
Select sel=new Select(selElem);
sel.selectByVisibleText("Aug");

答案 1 :(得分:0)

请尝试以下代码。

wait选择中选择每个值后,我只需增加dropdown

注意: - 如果元素中存在id,则使用id locator,而不是使用xpath locator

new Select(driver.findElement(By.id("day"))).selectByVisibleText("17");
Thread.sleep(1000);
new Select(driver.findElement(By.id("month"))).selectByVisibleText("Aug");
Thread.sleep(1000);
new Select(driver.findElement(By.id("year"))).selectByVisibleText("1988");

答案 2 :(得分:0)

您可以使用此代码,它将适合您:

System.setProperty("webdriver.gecko.driver", "E:/Selenium/geckodriver-v0.11.1-win64/geckodriver.exe");          
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.get("https://www.facebook.com/");

driver.findElement(By.id("u_0_1")).sendKeys("selenium");
driver.findElement(By.id("u_0_3")).sendKeys("selenium");
driver.findElement(By.id("u_0_5")).sendKeys("1234567891");
driver.findElement(By.id("u_0_8")).sendKeys("1234567891");

new Select(driver.findElement(By.id("day"))).selectByVisibleText("17");
new Select(driver.findElement(By.id("month"))).selectByVisibleText("Aug");
new Select(driver.findElement(By.id("year"))).selectByVisibleText("1988");

driver.findElement(By.id("u_0_i")).click();

您的代码中存在错误,即如果您使用隐式等待,那么您必须在网址启动之前编写它。在你的情况下,你在url启动后写了它。现在复制并粘贴此代码,它肯定会有效。