如果选择器的ID在注册页面中重复,如何从下拉列表中选择值?我在selenium web驱动程序中编写测试脚本以从下拉控件中检索值,但始终显示元素未找到异常。
代码是,
Select dropdown = new Select(driver.findElement(By.id("cat_id")));
dropdown.selectByIndex(1);
答案 0 :(得分:0)
您的问题的简单解决方案是使用css或xpath选择器:
Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req")));
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();
}}