当我在“搜索”按钮中输入数据时,如何使用硒编写逻辑来检查数据是否显示

时间:2019-06-06 09:09:14

标签: java selenium selenium-webdriver

在这里,我尝试使用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`

2 个答案:

答案 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();

    }

}