为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

万千封印 2023-01-05 10:01:33

在这里,我尝试使用 selenium 脚本从下拉列表中选择一个值,但我在控制台中收到此错误,如“线程“主”中的异常” enter code hereorg.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 回答

?
慕娘9325324

TA贡献1527条经验 获得超4个赞

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


尝试这样的事情:


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

希望这对你有帮助!


查看完整回答
反对 回复 2023-01-05
?
慕田峪7331174

TA贡献1554条经验 获得超13个赞

在您的网站中,它不是传统的选择下拉菜单,开发人员使用了 Ul 和 li 标签。我们必须使用 xpath 或 css-selector 定位器来识别它。"//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 的文本为“用户名”。点击它将在下拉列表中选择用户名。您的网站加载缓慢,所以我使用了 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();


    }


}


查看完整回答
反对 回复 2023-01-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信