繁体   English   中英

下拉按钮在Java中没有响应硒

[英]Drop down button is not responding with selenium in java

在此处输入图片说明 我想单击下拉按钮,然后在其中选择一个,然后单击它。我尝试了多种方法,但它不起作用。 附上html代码的图片,有关此的任何人都可以帮助我。 以下是我尝试过的代码

driver.findElement(By.id("homepages_dropdown")).click();

    /*List<WebElement> allElements = driver.findElements(By.xpath("//*[@id=\"homepages_item_AccountManagerDashboard\"]")); 

    for (WebElement element: allElements)
    {
          System.out.println(element.getText());
    }*/

只需使用“选择”即可创建处理下拉菜单等的对象。您可以使用“选择”通过元素的文本,索引和其他选项来选择元素。 这是处理下拉菜单和组合框之类的最简单方法。

new Select(driver.findElement(By.id("homepages_dropdown"))).selectByVisibleText("Your option's text");

这不是最明智的方法,但是如果您无法让开发人员通过HTML将其设为特定的select元素,则可能必须这样做。 我的解决方案中有类似的东西,其中有自定义下拉菜单。

您可以先创建一个dropdown元素,然后在其中单击单个记录(如果您要这样做),在这种情况下,它看起来像是突出显示的button元素中的span,因此您可以执行以下操作:

driver.findElement(By.id("homepages_dropdown")).click();
driver.findElement(By.xpath("//li//a[@id='homepages_item_AccountManagerDashboard']").click();

上面的语句将单击下拉列表,然后单击ID为homepages_item_AccountManagerDashboard的元素。

您还可以创建一个函数,该函数根据传递给您创建的方法的参数单击任意li,如果可以在下拉列表中选择许多选项,请考虑此问题。

public void SelectItem(string itemText)
{
    var dropdownElement = driver.findElement(By.id("homepages_dropdown"));
    var selectionItem = driver.findElement(By.xpath("//li[text()='" + itemText + "']");
    dropdownElement.Click();
    selectionItem.Click();
}

仅当通过页面对象模型进行工作时,这才是真正有效的选择,但这是使事情长期持续工作的最佳方法。

要单击Dropdown按钮并Select带有文本的Option作为Analytics您可以使用以下代码块:

driver.findElement(By.xpath("//div[@id='homepages']/button/span[@id='homepages_dropdown']")).click();
List<WebElement> allElements = driver.findElements(By.xpath("//div[@id='homepages']/ul/li/a")); 
for (WebElement element : allElements)
  if(element.getAttribute("innerHTML").contains("Analytics"))
  {
      element.click();
      break;
  }
System.out.println("Option with text as Analytics is selected");

我自己找到了解决方案,以下代码有效

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.id("homepages_dropdown")));
// drop down
driver.findElement(By.id("homepages_dropdown")).click();
Thread.sleep(2000);
// selecting configuration
driver.findElement(By.id("homepages_item_ConfigurationHomepage")).click();
Thread.sleep(2000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM