我的代码:
public class asdadsd {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://talentrack.in");
driver.findElement(By.xpath(".//*[@id='header']/div[2]/div[2]/div[2]/a/span")).click();
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='userlogin']/div/div[4]/a[1]")));
driver.findElement(By.xpath(".//*[@id='userlogin']/div/div[4]/a[1]")).click();
WebElement name = driver.findElement(By.xpath(".//*[@id='name']"));
name.sendKeys("anyname");
//WebDriverWait wait = new WebDriverWait(driver, 20);
//wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("select[id='cat_id'][name='cat_id']")));
Thread.sleep(5000L);
//WebElement category = driver.findElement(By.cssSelector("select[id='cat_id'][name='cat_id']"));
WebElement category = driver.findElement(By.cssSelector("#cat_id"));
Select a =new Select(category);
a.selectByValue("5");
}
}
类别下拉有什么问题?我可以填写其他下拉列表中的值。请帮我摆脱这个。
错误: 元素当前不可见,因此可能无法与之交互 命令持续时间或超时:13毫秒
我申请等待,但仍无法正常工作。
答案 0 :(得分:1)
@Kishan,
在您的代码中,WebDriver无法选择下拉列表,因为它找到了与您的css选择器匹配的两个元素。 PFA截图。 因此,如果您想使用css选择器,则可以使用:
#cat_id [class ='输入控制模式 - 标签选择占位符 - 颜色'] 而不是 #cat_id 。
WebElement category = driver.findElement(By.cssSelector("#cat_id[class='input-control modal-tab-selection placeholder-color']"));
Select a =new Select(category);
a.selectByValue("5");
我希望这会有所帮助。
答案 1 :(得分:0)
WebElement category = driver.findElement(By.xpath(".//*[@id='cat_id'][@data-message='required']"));
Select a =new Select(category);
a.selectByValue("4");
最后我明白了......
这是帮助我唯一识别下拉列表的xpath。感谢Vaibhav的帮助。永远不要相信xpath,更好地创建自己的。哈哈.. 快乐学习。 : - )