我使用Selenium WebDriver进行Web自动化测试并使用Java编写脚本。
这是一个美好的一天,直到我必须停下来选择约会的诞生"。我想知道如何在日期选择器下拉列表中选择日期,月份和年份的值。我想选择的日期是1966年12月14日。
地址:http://radcard-cloud.idatamap.com/login
这是我尝试的最后一个代码。我花了差不多4天试图完成它。求救!
package iDMautomation;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.util.List;
import org.openqa.selenium.firefox.*;
import java.util.concurrent.*;
public class FirstTest {
public static void main(String[] args) {
//initialize Chrome driver
System.setProperty("webdriver.chrome.driver", "C:\\Users\\senn\\Desktop\\RadCard Test\\Selenium\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
//Open gmail
driver.get("http://radcard-cloud.idatamap.com/");
driver.manage().window().maximize();
//driver.findElements(By.xpath(xpathExpression))
// Enter userd id
driver.findElement(By.className("patient")).click();
//email pedram
//driver.findElement(By.className("providerNum")).click();
WebDriverWait wait = new WebDriverWait(driver, 20);// 1 minute
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("email")));
driver.findElement(By.id("email")).click();
driver.findElement(By.id("email")).sendKeys("pedram@sahihi.com");
driver.findElement(By.id("PIN")).sendKeys("2281");
driver.findElement(By.id("DOB")).click();
Select sel1=new Select(driver.findElement(By.cssSelector("DOB")));
WebElement FirstTest = driver.findElement(By.id("DOB"));
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.className("ui-datepicker-current-day")).click();
Select sel3=new Select(driver.findElement(By.cssSelector("selectDay")));
new Select((WebElement) sel3).selectByVisibleText("14");
FirstTest.sendKeys(Keys.ENTER);

答案 0 :(得分:0)
首先,这看起来像Java,而不是JavaScript,所以你的标签可能不正确。
好的,让我们一次打破一个。 你会手动做什么:
很少有问题,可能是您的代码无效的原因
driver.findElement(By.className("ui-datepicker-current-day")).click();
Select sel3=new Select(driver.findElement(By.cssSelector("selectDay")));
new Select((WebElement) sel3).selectByVisibleText("14");
这里的第一行表明你试图点击今天的日期,而不是特别是第14次
第二行和第三行看起来像是在日历日尝试进行选择,但是对于不是下拉选择菜单的元素,您不能这样做。你只能点击它。另外,我很确定cssSelector(" selectDay")不起作用。它不知道您是否正在寻找ID,类名,标记名等。我看到了其中几个cssSelector问题。
同样在这里的第三行,为什么要创建一个新的Select到WebElement? 你应该可以做到
sel3.selectByVisibleText("14");
DOB是ID吗?你有一个
driver.findElement(By.id("DOB")).click();;
然后另一个
Select sel1=new Select(driver.findElement(By.cssSelector("DOB")));