簡単な解決策は、CSS、またはXPathのセレクタを使用している:
コードは、ターゲットページがあり、
Select dropdown = new Select(driver.findElement(By.id("cat_id")));
dropdown.selectByIndex(1);
ですコード私はあなたがcssとxpathセレクタの使い方を学ぶことを強くお勧めします。始めるのに最適な場所はhereです。
FirePath Firefoxプラグインのインストールを検討する必要があります。これは、学習速度を向上させるのに最適なツールです。
編集:ここでは
は私の完全なコードです:そのようなコードの
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();
}}
構造
複数のselect要素に同じid属性が指定されていますか?もしそうなら、これは不正な形式のHTMLであり、開発者に修正するよう指示する必要があります。または、上記の選択要素内に「cat_id」が2回表示されていることを指摘していますか? id属性とname属性は異なる属性であり、同じ値を持つこともOKです。 –
@Yogeshあなたのテストコードと、それが対象とするHTMLをあなたの質問に追加できますか? – sowa