Простое решение вашей проблемы с помощью CSS или XPath селекторов:
Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req")));
dropdown.selectByIndex(1);
Прежде чем пытаться писать больше код Я настоятельно рекомендую вам узнать, как использовать селектор css и xpath. Отличное место для начала - here.
Вы также должны рассмотреть возможность установки FirePath Firefox plug-in, так как это отличный инструмент для повышения скорости обучения.
Edit:
Вот мой полный код:
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
public class test{
private WebDriver driver;
private WebDriverWait wait;
@Test
public void main() throws InterruptedException{
driver = new ChromeDriver();
wait = new WebDriverWait(driver, 30);
driver.manage().window().maximize();
driver.get("http://talentrack.in/register");
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#cat_id.req")));
Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req")));
dropdown.selectByIndex(5);
Thread.sleep(5000);
driver.close();
}}
Структура кода, как этот <выберите идентификатор = класс "cat_id" = "вход-управления REQ заполнителем-цвет" OnChange = "возвращение show_others (this.value);» data-message = "required" name = "cat_id"> select id повторяется дважды на странице –
Вы говорите, что несколько элементов select имеют одинаковый атрибут id? Если это так, то это неверный HTML-код, и вы должны сказать разработчикам, чтобы это исправить. Или вы указываете, что «cat_id» появляется дважды в элементе select выше? атрибуты id и name имеют разные атрибуты, и для них нормально иметь одинаковое значение. –
@Yogesh Не могли бы вы добавить свой тестовый код и HTML, на который он нацелен, на ваш вопрос? – sowa