我正在尝试填写表单以创建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传递到特定月份也不起作用。
答案 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个月。