2015-02-08 4 views
1

Если кто-то может помочь мне с этой тайной .. Вот urlВыберите опцию DropDown с помощью селена

Вот если вы можете увидеть дату рождения Поля я могу выбрать месяц и дату, но я не могу выберите год I Пробовал выбор Использования значения, индекс он не работает тот же код работал на месяц и даты

Ниже мой код:

WebElement W = driver.findElement(By.xpath("//html/body/form[@id='aspnetForm'][contains(@action,'ActivateAccount.aspx?key=')][@method='post'][@name='aspnetForm']/div[@class='border4']/div[@id='page']/div[@class='IE-SCroll-mid']/div/div[@class='change-info-contain']/div/div/div/label[3]/select"));  
Select dropdown = new Select(W); 
dropdown.selectByValue("1997"); 
+2

Может вы предоставите 'code' вы пробовали с? – Saifur

+2

Работает для меня, хотя вы действительно не должны размещать такие ссылки в вопросе. Поместите свой код, объясните проблему. – RealSkeptic

+0

Я добавил свой код :) в настоящее время закончил с помощью auto it, чтобы выбрать только год его ... если кто-то 1 мог попробовать, если вы выбираете поле, работает ... –

ответ

0

Попробуйте реализацию explicit ждать с этим. Это позволит убедиться, что элемент присутствует, прежде чем начинать искать это.

By byId = By.id("ctl00_mcp_ddlYear"); 

//use explicit wait to make sure the element is there 
WebElement myDynamicElement = (new WebDriverWait(driver, 10)) 
    .until(ExpectedConditions.presenceOfElementLocated(byId)); 

Select dropdown = new Select(myDynamicElement); 
dropdown.selectByValue("1997"); 

Вы также можете использовать cssSelector непосредственно ждать конкретного варианта присутствовать со следующим кодом

//explicit wait 
By byCss = By.cssSelector("#ctl00_mcp_ddlYear>option[value='1997']"); 
WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(byCss)); 
element.click(); 
+1

Спасибо большое @Saifur это сработало :) Я чувствую, что явное ожидание заставил его работать –

+0

Рад, что это произошло .... – Saifur

Смежные вопросы