0

我面临一个问题,我无法从下拉列表中选择元素以继续进行。

参考网站的 URL 是“ 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']"));
4

3 回答 3

0

我不熟悉 Java,但我可以使用以下代码在 Ruby 中轻松完成此操作。

$driver.find_element(:xpath, ".//*[@id='input_dropdown']/div[1]/img").click
$driver.find_element(:link, "T24").click

您可以将“T24”替换为下拉菜单中可用的任何其他选项。希望这至少回答了您的一半问题,并且有人能够将其翻译成 Java。

于 2013-08-12T22:59:30.010 回答
0

所以组合下拉不是一个选择框,它是一个无序列表,包裹着一个输入。您需要单击下拉图标,然后单击所需的元素。这是一些有效的脏代码:)。它从下拉列表中选择“想法”。

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();
于 2013-08-13T01:20:56.747 回答
0

以下代码有效。这不是我想为您提供的代码。但仍然有效。您可以将 Airtel 替换为下拉菜单中存在的任何其他文本。

driver.findElement(By.id("oprauto")).sendKeys("Airtel");
driver.findElement(By.xpath("//ul/li/a/strong[text() = 'Airtel']")).click();
于 2013-08-13T05:29:06.433 回答