【问题标题】:Not able to select the value from drop down list by using Select method in Selenium无法使用 Selenium 中的 Select 方法从下拉列表中选择值
【发布时间】:2017-08-07 01:38:02
【问题描述】:

我无法使用“选择”方法从下拉列表中选择选项。

这是我的 gmail 帐户创建代码。

enter code here

package samples;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.Select;

public class SmallFunctionalities {

    public static void main(String[] args) throws InterruptedException {


        System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
        FirefoxDriver driver= new FirefoxDriver();
        driver.manage().window().maximize();
        Thread.sleep(5000);
        driver.get("https://accounts.google.com/SignUp");   
        Thread.sleep(5000);
        Select sitem= new Select(driver.findElement(By.id("BirthMonth")));
        sitem.selectByIndex(5);
        Thread.sleep(5000);

    }

}

错误信息

线程“main”org.openqa.selenium.support.ui.UnexpectedTagNameException 中的异常:元素本应为“select”但为“span”


【问题讨论】:

  • 就像错误中提到的那样,id 为“BirthMonth”的元素是一个跨度。要使 Select 类起作用,您提供的构造函数的元素必须是“select”html 标记。您不是在处理“纯”下拉列表,而是可能使用 css 和 javascript 的组合创建的。您需要点击打开它,然后手动选择选项。

标签: list selenium-webdriver drop-down-menu webdriver selenium-firefoxdriver


【解决方案1】:

这不是下拉值,您必须单击下拉箭头,然后单击必须从脚本传递的任何值。

代码如下:

System.setProperty("webdriver.chrome.driver", "E:/software and tools/chromedriver_win32/chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://accounts.google.com/SignUp");   
Thread.sleep(5000);

//Click on up/down arrow
driver.findElement(By.xpath(".//*[@id='BirthMonth']/div[1]/div[2]")).click();

// Now select value from list
driver.findElement(By.xpath(".//*[@id=':7']/div")).click();

【讨论】:

  • 如果您发现答案令人满意且有效。请点赞
猜你喜欢
  • 2015-03-13
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 2022-12-15
相关资源
最近更新 更多