无法点击并从动态下拉列表中选择值

时间:2017-01-17 03:33:35

标签: c# selenium selenium-webdriver

无法单击并从动态下拉列表中选择值。请找到下面的代码 -

public static void main(String[] args)
{
    // TODO Auto-generated method stub
    //System.setProperty("webdriver.chrome.driver", "C:\\Chrome Driver\\chromedriver.exe");
    //WebDriver Driver = new ChromeDriver();

    WebDriver Driver = new FirefoxDriver();
    Driver.get("http://www.spicejet.com/");

    Driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS)

    Driver.findElement(By.xpath(".//*[@id='ctl00_mainContent_ddl_originStation1_CTXT']")).click();
 }

另外我注意到Eclipse在打开Spicejet.com后继续运行,并且没有点击任何下拉列表。要停止执行,我需要在Terminate按钮上手动点击,否则它将不会停止并持续很长时间(我相信4-6小时)

2 个答案:

答案 0 :(得分:0)

当我打开该网站时,有时似乎等待用户选择移动或桌面网站。这就是为什么它会悬挂?

如果我点击它(使用Selenium代码或手动):

 x1path = "//a[@class='desktop-view-button']"
 WebDriverWait(driver,15).until(EC.presence_of_element_located((By.XPATH,x1path)))
 driver.find_element_by_xpath(x1path).click()

此代码打开菜单:

 x1path = '//*[@id="ctl00_mainContent_ddl_originStation1_CTXTaction"]'
 WebDriverWait(driver,15).until(EC.presence_of_element_located((By.XPATH,x1path)))
 driver.find_element_by_xpath(x1path).click()

但是你必须选择你想要的下拉元素(我不认为你的代码会这样做。)

 x1path = '//div[@id="dropdownGroup1"]/div/ul/li[6]/a'
 WebDriverWait(driver,15).until(EC.presence_of_element_located((By.XPATH,x1path)))
 driver.find_element_by_xpath(x1path).click()

ul/li[6]选择第一列(Belagavi)中的第6个元素。

答案 1 :(得分:0)

您可以使用以下代码选择任何值。在此代码中,我选择了Goa(GOI)。有关更多信息,它不是下拉列表。这是一个网络表。

WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("http://www.spicejet.com/");

    driver.findElement(By.id("ctl00_mainContent_ddl_originStation1_CTXTaction")).click();
    driver.findElement(By.xpath("//div[@id='dropdownGroup1']/div/ul[2]/li[4]/a")).click();