我遇到一个问题,我无法从下拉列表中选择元素继续进行。
参考网站的网址为“http://www.rechargeitnow.com/needrecharge.jspx”
我尝试了下面的代码,但没有成功。
//WebDriverWait wait = new WebDriverWait(driver, 10);
//WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));
WebDriverWait wait= new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("opId_div")));
//driver.findElement(By.cssSelector("select[id='operatorid']")).sendKeys("Airtel");;
//driver.findElement(By.linkText("mobile")).sendKeys("Airtel");
//driver.findElement(By.xpath("//*[@id='oprauto']")).click();
//driver.findElement(By.xpath("/html/body/div[2]/div/div[6]/div/div/div/div/div[2]/div/div/div/div/div[2]/select/option[5]")).findElement(By.name("Airtel"));
//operator.selectByIndex(1);
//driver.findElement(By.xpath("//*[@id='oprauto']")).sendKeys("Airtel");
driver.findElement(By.xpath("/html/body/div[2]/div/div[6]/div/div[3]/ul/li[3]/img")).click();
//Select operator=new Select(driver.findElement(By.id("operatorid")));
//operator.getOptions();
//operator.selectByVisibleText("Airtel");
driver.findElement(By.tagName(" mobile no. ")).sendKeys("9001785845");
driver.findElement(By.id("transSubscriptionNoID")).sendKeys("9001457868");
//driver.findElement(By.cssSelector("img[id='btn']")).submit();
//driver.findElement(By.id("btn")).submit();
driver.findElement(By.xpath("//*[@id='btn']"));
答案 0 :(得分:0)
我不熟悉Java,但我能够使用以下代码在Ruby中轻松完成此任务。
$driver.find_element(:xpath, ".//*[@id='input_dropdown']/div[1]/img").click
$driver.find_element(:link, "T24").click
您可以将“T24”替换为下拉列表中提供的任何其他选项。 希望这至少回答了你问题的一半,并且有人能够将其翻译成Java。
答案 1 :(得分:0)
因此,组合下拉列表不是一个选择框,它是一个无序列表,包含在输入中。您需要单击下拉图标,然后单击所需的元素。这是一些工作的脏代码:)。它从下拉列表中选择“Idea”。
WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 300);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.rechargeitnow.com/needrecharge.jspx");
WebElement dropDownArrow = driver.findElement(By
.id("input_dropdown"));
dropDownArrow.click();
WebElement option = wait.until(ExpectedConditions
.elementToBeClickable(By.linkText("Idea")));
option.click();
答案 2 :(得分:0)
以下代码有效。这不是我想要的代码。但是仍然有效。您可以将Airtel替换为下拉列表中的任何其他文本。
driver.findElement(By.id("oprauto")).sendKeys("Airtel");
driver.findElement(By.xpath("//ul/li/a/strong[text() = 'Airtel']")).click();