如何使用 Selenium C# select Devextreme 下拉列表中的值

How to select a value from Devextreme dropdown with Selenium C#

我需要 select 值(来自 House_TypeList 的任何值)来自带有 NUnit 的下拉菜单或纯硒。 . HTML 中没有看到它们。 我已经通过 xpath、名称、跨度包含等尝试了 select,我尝试向下发送密钥。我一直在等待元素变得可见。我没主意了。什么都不管用。我还没有尝试移动光标并尝试 select 它,但是在实现它时遇到了一些问题并且考虑到我的运气,我也不相信它会起作用..

我在这里是初学者,可能我在那里犯了一些错误。但我成功地管理了任何其他输入、按钮、导航..

我已经检查了其他类似的问题,但找不到适合我的答案。

这里甚至可以吗?

来源:

<div class="dx-item dx-box-item" style="display: flex; min-height: auto; flex-grow: 1; flex-shrink: 1;"
  <div class="dx-item-content dx-box-item-content" style="width: auto; height: auto; display: flex; flex-direction: column; flex-basis: 0px; flex-grow: 1;">
    <div class="dx-first-col dx-last-col dx-field-item dx-field-item-required dx-col-0 dx-flex-layout dx-label-h-align">
      <label class="dx-field-item-label dx-field-item-label-location-left" for="dx_dx-...._typeId">
        <span class="dx-field-item-label-content" style="width: 159px;">
          <span class="dx-field-item-label-text">Type:</span>
          <span class="dx-field-item-required-mark">&nbsp;*</span>
        </span>
      </label>
      <div class="dx-field-item-content dx-field-item-content-location-right">
        <div class="dx-textbox dx-texteditor dx-texteditor-empty dx-dropdowneditor-button-visible dx-widget dx-dropdowneditor-field-clickable dx-dropdowneditor dx-selectbox dx-validator dx-visibility-change-handler" id="slb_HouseManagement_EditHouse_TypeList">
          <div class="dx-dropdowneditor-input-wrapper dx-selectbox-container">
            <input type="hidden" value="" name="typeId">
            <div class="dx-texteditor-container">
              <input autocomplete="off" id="dx_dx-4e..._typeId" class="dx-texteditor-input" aria-haspopup="true" aria-autocomplete="list" type="text" readonly="" spellcheck="false" tabindex="0" aria-expanded="false" role="combobox" aria-required="true">
              <div data-dx_placeholder="Select..." class="dx-placeholder"></div>
              <div class="dx-texteditor-buttons-container">
                <div class="dx-dropdowneditor-button dx-button-normal dx-widget" type="button">
                  <div class="dx-button-content">
                    <div class="dx-dropdowneditor-icon"></div>
                  </div></div></div></div></div></div></div></div></div></div>

您在此处提供的 DOM 不包含任何列表元素。所以我不能在这里分享确切的工作代码。我将分享一些您可以更新和使用的示例

使用 Selenium 到列表中的 select 项,您有两个选项可供选择:-

  1. Select Class

创建一个 select class 的对象,如下所示

 Select obj =new Select(driver.findElement(By.id("search-box")));

然后你可以在这个select对象上使用几个函数

obj.selectByVisibleText("Apartment");
Or
obj.selectByIndex(2);
or
obj.selectByValue("Farmhouse");

您还可以获取列表中的所有元素,然后处理该列表

List <WebElement> myHouseList = obj.getOptions();

System.out.println(myHouseList.size());

2.操作 Class

 driver.manage().timeouts().implicitlyWait(10 , TimeUnit.SECONDS);
  ele= driver.findElement(By.linkText("HouseList"));
  Actions act = new Actions(driver);
  act.moveToElement(ele).click();

  WebElement webele = driver.findElement(By.linkText("Apartment"));
  act.moveToElement(webele).click().build().perform();

希望对您有所帮助!!

完成。在 Devextreme support 中找到它,用户遇到了一些不同的问题,但它也解决了我的问题。

IWebElement selectedItem = driver.FindElement(By.XPath("//div[@role='option']/div[text()='Apartment']"));
selectedItem.Click();