在这里,我尝试使用Selenium脚本从下拉列表中选择一个值,但在控制台中却遇到此错误,例如
“线程“主”中的异常
enter code here
org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应
被“选择”但被“跨度”。
public class HomeUserManagement {
public static void main(String args[]) {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\UMASHANKAR\\Documents\\selenuim\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.manage().window().maximize();
//this code is for login
driver.get("https://ecabportal.azurewebsites.net/dashboard");
driver.findElement(By.name("email")).sendKeys("admin@malbork.in");
driver.findElement(By.name("password")).sendKeys("NsSaNj@0205");
driver.findElement(By.name("signIn")).click();
//actual code for selecting a value from dropdown
driver.get("https://ecabportal.azurewebsites.net/user");
Select drpdwn=new Select(driver.findElement(By.id("select2-signup-username-
container")));
drpdwn.selectByVisibleText("User Name");
drpdwn.selectByIndex(0);
there are multiple values in a dropdown I need to select one value in
that..`enter code here`
答案 0 :(得分:2)
您应该再次找到该元素...以确保输入了文本。
尝试这样的事情:
WebElement data=driver.findElement(By.xpath("//input[@class='form-control input-sm']"));
data.sendKeys("abc" , Keys.ENTER);
WebElement updatedData=driver.findElement(By.xpath("//input[@class='form-control input-sm']"));
String result =updatedData.getText();
System.out.println(result);
希望这对您有帮助!
答案 1 :(得分:0)
在您的网站中,这不是传统的select下拉列表,开发人员已使用Ul和li标签。我们必须使用xpath或css-selector定位器对其进行识别。 “ // span [@ id ='select2-signup-username-container']”:在此xpath中,我通过将具有span标签的ID标识为id的元素标识为“ select2-signup-username-container”来单击下拉列表 // ul [@ id ='select2-signup-username-results'] // li [text()='User Name']:单击后,我们将显示ul标签,其中子li的文本为“ User Name” 。单击它会在下拉列表中选择用户名。您的网站加载缓慢,因此我使用Thread.sleep,可以根据需要使用Actions类或webdriver等待。
package com.java.stackoverflow;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import com.driver.utils.DriverFactory;
public class Test {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = DriverFactory.getdriverfor("chrome");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.get("https://ecabportal.azurewebsites.net/login");
driver.findElement(By.xpath("//input[@name='email']")).sendKeys("admin@malbork.in");
driver.findElement(By.name("password")).sendKeys("NsSaNj@0205");
driver.findElement(By.xpath("//span[text()='SignIn']")).click();
driver.findElement(By.xpath("//span[text()='User Management ']")).click();
Thread.sleep(1000);
WebElement dropdown_ck = driver.findElement(By.xpath("//span[@id='select2-signup-username-container']"));
dropdown_ck.click();
driver.findElement(By.xpath("//ul[@id='select2-signup-username-results']//li[text()='User Name']")).click();
}
}