簡體   English   中英

無法從下拉列表中選擇元素

[英]Not able to select element from drop down list

我面臨一個問題,我無法從下拉列表中選擇元素以進一步進行操作。

參考站點的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']"));

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

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

您可以使用下拉菜單中可用的任何其他選項替換“ T24”。 希望這至少可以回答您一半的問題,並且有人可以將其轉換為Java。

因此,組合下拉列表不是選擇框,而是一個無序列表,包裹在輸入周圍。 您需要單擊下拉圖標,然后單擊所需的元素。 這是一些骯臟的代碼,它起作用:)。 它從下拉列表中選擇“想法”。

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();

以下代碼有效。 這不是我想為您提供的代碼。 但是仍然有效。 您可以使用下拉菜單中出現的任何其他文本替換Airtel。

driver.findElement(By.id("oprauto")).sendKeys("Airtel");
driver.findElement(By.xpath("//ul/li/a/strong[text() = 'Airtel']")).click();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM