在这里,我尝试使用Selenium脚本从下拉列表中选择一个值,但
在控制台中却收到此错误,例如
“线程“主”中的异常”
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();
//for login
driver.get("https://ecabportal.azurewebsites.net/dashboard");
driver.findElement(By.name("email")).sendKeys("abc@xyz.in");
driver.findElement(By.name("password")).sendKeys("abc123xyz");
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);
下拉菜单中有多个值,我需要在其中选择一个值。
@MosheSlavin的分析和回答是正确的方向。
这个错误讯息…
"Exception in thread "main" org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "span"
…意味着您已经使用 Select
类与所需
元素进行交互,其中元素为 <span>
.
要使用硒从下拉列表中选择一个值,例如用户名,您可以使用以下解决方案:
driver.get("https://ecabportal.azurewebsites.net/dashboard");
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.name("email"))).sendKeys("admin@malbork.in");
driver.findElement(By.name("password")).sendKeys("NsSaNj@0205");
driver.findElement(By.name("signIn")).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h1[contains(., 'Dashboard')]")));
driver.get("https://ecabportal.azurewebsites.net/user");
new WebDriverWait(driver, 20).until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//div[@id='load']")));
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.select2-selection.select2-selection--single>span.select2-selection__rendered"))).click();
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='select2-results']//li[contains(., 'User Name')]"))).click();
Note:
elementToBeClickable()
click()
invisibilityOfElementLocated()
然后调用所需 click()
.我一直在搜索2天,但我无法找到解决方案,我想要一个下拉列表被选中。当我使用某些元素.all css定位器单击下拉列表时,它会单击下拉列表(下拉列表打开但显示错误)。所以我试图使用链接文本打开下拉列表(完美地打开)。但在那之后,我无法在下拉列表中选择该选项。(显示“不可见元素”)。我也无法通过链接文本选择该选项。以下是详细信息 我试图通过以下方法来选择,但我不能让它工作。 等待元素变为可见。 链接文
下面是我得到的错误。 下面是HTML DOM
问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。一切都很好,除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此
问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J
我在Servlet中使用SortedMap来填充JSP中的下拉列表值,我有以下代码 在JSP中 我正在使用一个 JSP 页进行插入和更新。当我编辑页面时,如何将所选值设置为下拉列表,其中所选值将来自数据库。
问题内容: 我创建了一个客户c#DropDownList控件,可以将其内容呈现为optgroup(不是从头开始,我编辑了一些在Internet上找到的代码,尽管我确切地了解了它的作用),并且工作正常。 但是,我现在遇到一种情况,我需要在下拉菜单中有两个缩进级别,即 但是,在上面的示例代码段中,它呈现的缩进量与相同。 有没有一种方法可以产生我想要的嵌套optgroup行为? 问题答案: 好的,如果有