[英]How to verify the button having drop down menu using selenium in 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.