Java 当我将数据输入到";搜索“;按钮,使用selenium如何编写逻辑来检查数据是否显示

Java 当我将数据输入到";搜索“;按钮,使用selenium如何编写逻辑来检查数据是否显示,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,在这里,我试图使用selenium脚本从下拉列表中选择一个值,但我在控制台中遇到了类似的错误 线程“main”中出现异常 在此处输入代码org.openqa.selenium.support.ui.unexpectedtagname异常:元素应 已被“选择”,但为“跨度” 您应该再次找到元素…以确保输入了文本 试着这样做: WebElement data=driver.findElement(By.xpath("//input[@class='form-control input-sm']"))

在这里,我试图使用selenium脚本从下拉列表中选择一个值,但我在控制台中遇到了类似的错误 线程“main”中出现异常
在此处输入代码
org.openqa.selenium.support.ui.unexpectedtagname异常:元素应 已被“选择”,但为“跨度”


您应该再次找到元素…以确保输入了文本

试着这样做:

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);  

希望这对您有所帮助!

在您的网站中,它不是传统的选择下拉列表,开发人员使用了Ul和li标记。我们必须使用xpath或css选择器定位器来识别它。 “//span[@id='select2-signup-username-container']:在这个xpath中,我通过标识带有span标记且id为“select2-signup-username-container”的元素来单击下拉列表” //ul[@id='select2-signup-username-results']//li[text()='User Name']:单击后,我们将看到ul标记显示,子li的文本为“User Name”。单击它将在下拉列表中选择username。您的网站加载缓慢,因此我使用了Thread.sleep。如果需要,您可以使用Actions类或webdriver wait

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

    }

}

先生,我没有得到在发送数据后需要再次查找的元素相同的元素!如果这是您更改的元素…如果您正在寻找其他要加载的元素,请查找它!现在我再次找到了search元素,与上面的代码相同,但它不起作用我有find xpath for table,它正在显示数据,现在它在中显示数据控制台谢谢先生,在下拉元素中我出错了,我已编辑了我的问题,请检查一次并指导我…这是一个关于错误问题的好答案…这是您正在回答的问题…:
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();

    }

}