元素无法使用text-selenium webdriver定位

目前正在研究selenium webdriver并使用Java语言。

Log.info("Clicking on To weekrange dropdown"); JavascriptExecutor executor25 = (JavascriptExecutor)driver; executor25.executeScript("document.getElementById('toWeekYear).style.display='block';"); Select select25 = new Select(driver.findElement(By.id("toWeekYear"))); select25.selectByVisibleText("2011"); JavascriptExecutor executor26 = (JavascriptExecutor)driver; executor26.executeScript("document.getElementById('toWeekYear).style.display='block';"); Select select26 = new Select(driver.findElement(By.id(" toWeek"))); select26.selectByVisibleText(" W 5"); Thread.sleep(6000); 

在上面的代码中,我尝试选择周范围,并选择年份2011和周W5的forms。这些值是从下拉列表中选择的。 问题是在选择第一个下拉列表时,它正在选择年份,同时尝试选择第二个下拉列表时出现错误无法找到带有文本的元素:W 1

这是HTML标记:

   2010  2011  2012  2013    W 1  W 2  W 3  W 4  W 5 

   2010  2011  2012  2013    W 1  W 2  W 3  W 4  W 5 

这是我的fromweek javascript:

 Log.info("Clicking on From weekrange dropdown"); JavascriptExecutor executor23 = (JavascriptExecutor)driver; executor23.executeScript("document.getElementById('fromWeekYear').style.display='block';"); Select select23 = new Select(driver.findElement(By.id("fromWeekYear"))); select23.selectByVisibleText("2011"); JavascriptExecutor executor24 = (JavascriptExecutor)driver; Thread.sleep(6000); executor24.executeScript("document.getElementById('fromWeek').style.display='block';"); Select select24 = new Select(driver.findElement(By.id("fromWeek"))); select24.selectByVisibleText(" W 1"); Thread.sleep(6000); 

试试这个:

 new Select(driver.findElement(By.id("fromWeekYear")).selectByValue("2010"); new Select(driver.findElement(By.id("toWeek")).selectByValue("1"); 

价值是单一的,使用价值。

如果是文字,你的文字有空格:

 new Select(driver.findElement(By.id("fromWeekYear")).selectByVisibleText(" 2010"); new Select(driver.findElement(By.id("toWeek")).selectByVisibleText(" W 1"); 

其他问题是,你的空间可能是( )

你有一些间距问题:

driver.findElement(By.id(" toWeek")));

id中不应该有空格:

driver.findElement(By.id("toWeek")));