使用Selenium / Java

时间:2015-10-22 20:06:03

标签: java selenium

我正在尝试填写表单以创建Gmail帐户。

package seleniumpackage;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;

public class HoverTest {
    public static void main(String[] args) throws InterruptedException{
        WebDriver driver = new FirefoxDriver();
        driver.manage().window().maximize();

        driver.get("http://www.gmail.com");
        Thread.sleep(2000);

        driver.findElement(By.linkText("Utwórz konto")).click();
        Thread.sleep(2000);

        driver.findElement(By.xpath("//*[@id='BirthMonth']/div[1]/div[2]")).click();
        Thread.sleep(2000);

        // Neither this works
        //driver.findElement(By.xpath("//*[@id=':5']/div")).click();

        // Nor that
        WebElement HoverMonth = driver.findElement(By.xpath("//div[contains(@class, 'goog-menuitem-content') and text()='Maj']"));
        Actions action = new Actions(driver);
        action.moveToElement(HoverMonth).perform();
        Thread.sleep(2000);
        action.click(HoverMonth).perform();

    }
}

问题是在下拉菜单中点击月份。

在第二种方法驱动程序正确地悬停在特定月份,但它没有点击它,结果是“Miesiąc”而不是“Maj”。将xpath传递到特定月份也不起作用。

2 个答案:

答案 0 :(得分:0)

与Xpath一起使用。

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class gmailSignup {
    @Test
    public void gmailCalendar(){
        WebDriver driver = new FirefoxDriver();
        driver.manage().window().maximize();

        driver.get("https://accounts.google.com/");
        driver.findElement(By.partialLinkText("Utwórz konto")).click();
        // Open the month select field
         driver.findElement(By.xpath("//span[@id='BirthMonth']/div[1]/div[2]")).click();
       // Select the fifth month = "Maj"
       driver.findElement(By.xpath("//span[@id='BirthMonth']/div[2]/div[5]/div[1]")).click();


       driver.quit();
       }
}

答案 1 :(得分:0)

您必须先单击“生日”下拉菜单,然后单击所需的月份。我刚试过这段代码就可以了。

driver.get("https://accounts.google.com/b/0/SignUp?service=mail");
driver.findElement(By.cssSelector("div[title='Birthday']")).click();
driver.findElement(By.id(":6")).click();

其中":6"是第6个月。