我有一个登录页面。在我的测试用例中,我可以使用凭据登录,但是一旦我登录,我就试图从下拉列表中选择项目。我有以下代码,但我收到错误
Select select = (Select) driver.findElement(By.id("Id goes here"));
select.selectByValue("Value Goes here");
我收到以下错误 无法找到元素:{“method”:“id”,“selector”:“Id的值”}
注意:登录的URL与出现选择框的URL不同。这可能是个问题吗?有办法解决吗?
答案 0 :(得分:0)
当WebDriver根据您的选择标准找不到该元素时,您得到的是NoSuchElementException
。
确保使用id
或其他选择器正确定位WebElement。如果select
元素位于iframe
内,则必须先使用[driver.switchTo().frame()
](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html)切换到该元素。
此外,您无法将WebElement
投射到Select
。
使用:
WebElement elem = driver.findElement(By.id("listofnames"));
Select select = new Select(elem);
select.selectByValue("Name1");
答案 1 :(得分:0)
这对我有用:
String Xcode = "//li[@class='dropdown']/a"; //<-your xpath here
WebElement CourseSelector = driver.findElement(By.xpath(Xcode));
CourseSelector.click();
try {Thread.sleep(3000);} // o&c - GIVES TIME FOR ITEMS TO APPEAR
catch (InterruptedException wtv)
{System.out.println("problem on wait with resource load" + wtv); }
Xcode = "//ul/li/a[text()='" + Your_Menu_Item_Here + "']"; // <- again your xpath here
CourseSelector = driver.findElement(By.xpath(Xcode));
CourseSelector.click();
答案 2 :(得分:0)
选择dropdown1;
dropdown2 = new Select (mozila.findElement(By.id("of the dropdown1")));
dropdown2.selectByValue("9");
选择dropdown2;
dropdown2 = new Select (mozila.findElement(By.id("of the dropdown2")));
dropdown3.selectByValue("2018");