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

如何查找动态下拉列表元素的网页元素位置?

如何查找动态下拉列表元素的网页元素位置?

慕虎7371278 2023-08-04 19:13:49
我无法找到下拉列表的动态 Web 元素位置public void selectClassofService(String value) throws InterruptedException{    driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div[3]/div[2]/div[2]/div/div/div/div[2]/div[2]/div[2]/form/div[5]/div/div[2]/div/div/div[1]/input")).click();   List<WebElement> list = driver.findElements(By.xpath("/html/body/div[1]/div/div/div/div[3]/div[2]/div[2]/div/div/div/div[2]/div[2]/div[2]/form/div[5]/div/div[2]/div/div/div[1]/input"));    System.out.println("Size of the list size =" + list.size());    for (int i = 0; i < list.size(); i++) {        System.out.println("names of the divisions " + list.get(i).getText());        if (list.get(i).getText().contains(value)) {            list.get(i).click();            break;        }    }这是我的示例 html 代码<ui class="vs_dropdown-menu" role="listbox"><l1 class=vs_dropdown-option role="option">sample pack </l1><l2 class=vs_dropdown-option vs vs_dropdown-option--highlight role="option">sample pack </l2><l3 class=vs_dropdown-option role="option">sample pack2 </l3>
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

首先,不要写太长的 xpaths。有更好的方法来访问元素,而不是做那些令人毛骨悚然的事情。


String dropdownXpath = "//input[@class='vs_dropdown-menu' and @role='listbox']";


new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath(dropdownXpath))).click();


List<WebElement> myList = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath(dropdownXpath + "//li[@class='vs_dropdown-option' and @role='option']")));


for (WebElement element:myList)

{

    System.out.println("names of the divisions " + element.getText());

    if(element.getText().contains("Mumbai"));

        element.click();

}

如果无法像上面那样访问下拉菜单,只需获取父 div 的 Id,如下所示:


String dropdownXpath = "//div[@id='some-id']input[@class='vs_dropdown-menu' and @role='listbox']";

不要通过爬行 html 标签来查找元素来浪费时间。


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

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