当前位置: 首页 > 知识库问答 >
问题:

如何使用WebDrive从下拉框中选择weberement

空英达
2023-03-14

我试图从下拉列表中选择一个Web元素,但无法这样做。我试图从下拉列表中选择的Web元素是Edit/ViewResume

在我的第一次尝试中,我尝试使用操作和选择类方法来选择 webelement。在这里从下拉列表中选择元素,我尝试了selectByValue(value),selectByIndex(1)和selectByVisibleText(text),但它们都不起作用,我得到了org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应该是“选择”,但“a”是这个异常。

  Webelement wb = driver.findElement(By.xpath("//div[@class='ns_menu_item_wrap ns_lt active']/a"));
  Actions mouse = new Actions(driver);
  mouse.moveToElement(wb).perform();
  Select sel = new Select(wb);
  sel.selectByIndex(1);

在这里,我试图通过使用操作类build()、click()和perform()方法来选择元素,但是什么也没有发生,也就是说,我仍然无法从下拉列表中选择webelement。对于这个代码,我没有得到任何异常。

  Webelement wb = driver.findElement(By.xpath("//div[@class='ns_menu_item_wrap ns_lt active']/a"));
  Actions mouse = new Actions(driver);
  mouse.moveToElement(wb).click();
  driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS);
  wb=driver.findElement(By.xpath("//a[contains(@href,'http://my.monsterindia.com/view_resume.html?mode=edit')]"));
  mouse.moveToElement(wb).click();
  driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS);
  mouse.build();
  Thread.sleep(4000);
  mouse.perform(); 
<div class="ns_menu_item_wrap ns_lt active">
<a class="ns_menu_item" href="http://my.monsterindia.com/my_monster.html">My Monster</a>
<div class="ns_dropdown" style="display: none; left: -2px;">
<div class="ns_dropdown_inner">
<div class="ns_dd_link_wrap">
<a class="ns_dd_link" href="http://my.monsterindia.com/view_resume.html?mode=edit">Edit/View Resume</a>
<a class="ns_dd_link" href="http://my.monsterindia.com/applications.html">My Applications</a>
<a class="ns_dd_link" href="http://my.monsterindia.com/manageagents.html">Job Agent</a>
<a class="ns_dd_link" href="http://my.monsterindia.com/confidentiality.html">Privacy Plus</a>
<a class="ns_dd_link" href="http://my.monsterindia.com/newsletter.html">Subscriptions</a>
</div>
<div class="ns_dd_othertxt">
<div class="ns_clr"/>
</div>
</div>
</div>

共有3个答案

上官鸿晖
2023-03-14

由于我无法将代码粘贴到注释中,这就是为什么将其作为答案的原因 - 在此代码中,我正在获取 System.out.println(“2”)的输出;作为 2,但没有获得 System.out.println(“3”) 的任何输出;我在逻辑上做错了吗?

  driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS);
  wb = driver.findElement(By.linkText("My Monster"));
  Actions mouse = new Actions(driver);
  mouse.moveToElement(wb).click();
  System.out.println("2");
  WebElement wb1 = driver.findElement(By.linkText("Edit/View Resume"));
  mouse.moveToElement(wb1).click();
  mouse.build();
  mouse.perform();
  System.out.println("3");
狄旻
2023-03-14

您的第二次尝试看起来有点奇怪,因为在您的操作中,您调用 mouse.moveToElement(wb),然后在执行该操作之前将另一个元素分配给 wb。我想尝试以下方法:

driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS); // It is enough to call this once
Webelement wb = driver.findElement(By.xpath("//div[@class='ns_menu_item_wrap ns_lt active']/a"));
Actions mouse = new Actions(driver);
mouse.moveToElement(wb).click();
Webelement wb2 = driver.findElement(By.xpath("//a[contains(@href,'http://my.monsterindia.com/view_resume.html?mode=edit')]"));
mouse.moveToElement(wb2).click();
mouse.build(); // You don't need the sleep after this before calling perform()
mouse.perform(); 

但是像埃尔金一样。我不明白为什么一个简单的

driver.findElement(By.xpath("//a[contains(@href,'http://my.monsterindia.com/view_resume.html?mode=edit')]"));

不能工作。

马煌
2023-03-14

您提供的标记中没有HTML<code>select</code>项。查看此处了解详细信息。那里只有链接。那你为什么不点击这个链接呢。这大概是:

driver.findElement(By.linkText("Job Agent")).click();

或者你需要点击的任何一个。

 类似资料:
  • 问题内容: 我对英超联赛的数据感兴趣。因此,我尝试从此官方网站获取数据https://www.premierleague.com/stats/top/players/total_pass 我正在使用R和RSelenium包。 但是我遇到了一些问题。有一些类别的数据,例如季节,位置,俱乐部等。 因此,我认为我可以基于这些类别获取数据。但是我不知道如何在此站点中使用Rselenium在下拉框中选择特定

  • 我无法从selenium webdriver中的下拉列表中选择值。我尝试了所有使用名称和xpath选择器的方法。请帮忙。 代码是:

  • 目前正在开发SeleniumWeb驱动程序和Java。我想选择日期选择器形式的选项。我试图从日期选择器下拉列表中选择月份。但它显示以下无法定位元素:{“方法”:“类名”,“选择器”:“ui日期选择器月”}命令持续时间或超时:31毫秒 因此,我需要使用java脚本执行器使元素可见,但在下面的代码中,我写为“document.getElementById('ui-datepicker-month'),

  • 我真的很难从一个网站上的下拉菜单中选择一个项目。HTML的代码如下所示: 我已经尝试了我能想到的一切,并在StackOverflow上找到了!我注意到这似乎可以用来选择实际的下拉框: 但我认为这是可行的,因为代码运行时不会出现任何错误。但是,我仍然无法从下拉菜单中选择任何内容。我试过: 通过xpath/name/id/tag/value/text查找元素 选择\u mp。按值选择值('2') 选择

  • 下面给出了一段表示下拉列表的代码。我需要在此下拉列表中选择日期值,由<代码> 以下方法无效 1。)使用“按导入组织选择”选择此值。openqa。硒。支持用户界面。选择 控制台显示: 元素应该是“选择”,但应该是“选项” 2.)首先单击下拉列表以显示要选择的选项,然后单击该选项。 控制台显示: 调试元素缺少可访问的名称:id:类型,标记名:选择,类名:文本输入ng原始ng未触及ng有效ng范围 3.

  • 我正在尝试使用Capybara(2.1.0)从下拉菜单中选择一个项目。 我想通过数字来选择(意思是选择第二个、第三个等选项)。 我疯狂地搜索了所有的东西,但都没有结果。 但会导致以下错误: 那么我如何从下拉(使用Capybara)中选择第一个、第二个、第三个等选项呢?