元素无法使用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")));