需要在SeleniumWebDriver中使用xpath选择下拉值

需要在SeleniumWebDriver中使用xpath选择下拉值,selenium,Selenium,我的目的是从RedBus站点的下拉列表(从字段)中选择一个值。我使用Xpath来选择它 我正在使用以下代码: WebDriver driver=new FirefoxDriver(); driver.get("http://www.redbus.in/"); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.findElement(By.id("DDLSo

我的目的是从RedBus站点的下拉列表(从字段)中选择一个值。我使用Xpath来选择它

我正在使用以下代码:

WebDriver driver=new FirefoxDriver();
        driver.get("http://www.redbus.in/");
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        driver.findElement(By.id("DDLSource")).sendKeys("Chenn");
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        driver.findElement(By.xpath(".//*[@id='123']")).click();
但它不起作用。仅发送值,不选择

谁能帮我一下吗?…

试试看

Select selectBox = new Select(driver.findElement(By.id("DDLSource")));
selectBox.selectByVisibleText(aText);
试一下

Select selectBox = new Select(driver.findElement(By.id("DDLSource")));
selectBox.selectByVisibleText(aText);

要在下拉列表中单击某些内容,您必须使用WebDriver功能:

new Select(dropdownElement).selectByVisibleText(textValue);

dropdownElement是一个WebElement,您可以使用该驱动程序。findElementBy…

要在下拉菜单上单击某个内容,您必须使用WebDriver功能:

new Select(dropdownElement).selectByVisibleText(textValue);

dropdownElement是一个WebElement,您可以使用它的驱动程序。findElementBy…

我已经在firefox中测试了以下代码,它可以正常工作。如果你想选择一个像钦奈这样的城市,只需在from文本框中输入c,你就会得到一个以c开头的所有城市的列表。这也将使下拉元素变得可见。在此之后,使用xpath并更改城市名称以在下拉列表中选择它。希望这有帮助。快乐编码

WebDriver driver = new FirefoxDriver();
        driver.get("http://www.redbus.in");
        driver.findElement(By.xpath("//input[@id = 'DDLSource']")).sendKeys("c");
 //Pass the city name like Chennai instead of Chakshu
            driver.findElement(By.xpath("//dl[@id = 'lis']//dt[text()='Chakshu']")).click(); 

我已经在firefox中测试了以下代码,它可以正常工作。如果你想选择一个像钦奈这样的城市,只需在from文本框中输入c,你就会得到一个以c开头的所有城市的列表。这也将使下拉元素变得可见。在此之后,使用xpath并更改城市名称以在下拉列表中选择它。希望这有帮助。快乐编码

WebDriver driver = new FirefoxDriver();
        driver.get("http://www.redbus.in");
        driver.findElement(By.xpath("//input[@id = 'DDLSource']")).sendKeys("c");
 //Pass the city name like Chennai instead of Chakshu
            driver.findElement(By.xpath("//dl[@id = 'lis']//dt[text()='Chakshu']")).click(); 

如果需要从此类下拉列表中选择值,则需要首先单击文本框。这将使下拉列表可见,然后需要使用xpath作为城市名称执行单击操作。如果你需要更多的帮助,请告诉我。我已经尝试了与你所说的完全相同的方法。我已选择文本框并传递值“chenn”2。然后它向我展示了选项3。但我无法从中选择值。请您帮助我,如果您需要从此类下拉列表中选择值,则需要首先单击文本框。这将使下拉列表可见,然后需要使用xpath作为城市名称执行单击操作。如果你需要更多的帮助,请告诉我。我已经尝试了与你所说的完全相同的方法。我已选择文本框并传递值“chenn”2。然后它向我展示了选项3。但是我不能从中选择一个值。你能帮我吗?我必须发送一些键来获得建议的选项。请访问该网站一次,以便更好地理解,但我必须发送一些密钥以获得建议的选项。请访问该网站一次,以便更好地了解vinay的工作原理。但是您能告诉我“/dl[@id='lis']//dt[text()='Chakshu']”您是如何找到这条路径的吗?或者自己编写html代码。这是编写xpath的方式。不确定是否有一个网站可以在这方面培训你。如果我找到一个学习xpath的网站,我会告诉你的。好的,我是selenium的新手。但是我正在尝试用同样的方法选择xpath“driver.findElement(By.id(“DDLDestination”))).sendKeys(“th”);driver.findElement(By.xpath(//dl[@id='lis']//dt[text()='Theni']))字段。单击();”。但它不起作用。你能帮我吗?把c换成t。如果要选择一个城市,请在行driver.findElement(By.xpath(//input[@id='DDLSource'])中输入该城市的第一个字母;你能试试这个吗?driver.findElement(By.id(“DDLDestination”)).sendKeys(“t”);findElement(By.xpath(“//dl[@id='lis']//dt[text()='Theni']))。单击();在“to”字段中选择一个值对我不起作用。它在vinay工作。但是你能告诉我“/dl[@id='lis']//dt[text()='Chakshu']”你是如何找到这条路径的吗?或者自己编写html代码。这是编写xpath的方式。不确定是否有一个网站可以在这方面培训你。如果我找到一个学习xpath的网站,我会告诉你的。好的,我是selenium的新手。但是我正在尝试用同样的方法选择xpath“driver.findElement(By.id(“DDLDestination”))).sendKeys(“th”);driver.findElement(By.xpath(//dl[@id='lis']//dt[text()='Theni']))字段。单击();”。但它不起作用。你能帮我吗?把c换成t。如果要选择一个城市,请在行driver.findElement(By.xpath(//input[@id='DDLSource'])中输入该城市的第一个字母;你能试试这个吗?driver.findElement(By.id(“DDLDestination”)).sendKeys(“t”);findElement(By.xpath(“//dl[@id='lis']//dt[text()='Theni']))。单击();在“收件人”字段中选择值对我不起作用