【问题标题】:Select Dropdown Item on Materialize CSS using Selenium C#使用 Selenium C# 在 Materialise CSS 上选择下拉项
【发布时间】:2017-11-09 00:47:25
【问题描述】:

我想在下拉字段中选择项目。该页面使用 Materialize CSS,我使用的是 Selenium webdriver C#。

我最后一次尝试是:

IWebElement tipoLoja = driver.FindElement(By.XPath("//select[@id='tipo_empresa']"));
SelectElement selectTipoLoja = new SelectElement(tipoLoja);
selectTipoLoja.SelectByValue("0");

但结果是:

OpenQA.Selenium.NoSuchElementException:无法定位元素://select[@id='tipo_empresa']

HTML 代码:

<br>
<div class="input-field col  s12 m4 l4 ">
<div class="select-wrapper">    
    <span class="caret">▼</span>
    <input class="select-dropdown" readonly="true" data-activates="select-options-fe6e0db4-d829-b47a-86e7-0a3d5b55e74e" value="Selecione" type="text">
    <ul id="select-options-fe6e0db4-d829-b47a-86e7-0a3d5b55e74e" class="dropdown-content select-dropdown ">
        <li class="disabled "></li>
        <li class=""></li>
        <li class=""></li>
        <li class=""></li>
    </ul>
    <select data-val="true" data-val-required="Informe o Tipo da Loja." id="tipo_empresa" name="TipoLoja">
        <option value="" disabled="disabled" selected="selected">Selecione</option>
        <option value="0">Matriz</option>
        <option value="1">Filial</option>
        <option value="2">Centro de Distribuição</option>
    </select>
    </div>
    <label for="tipo_empresa">Tipo da Loja*</label>
</div>

【问题讨论】:

  • 欢迎来到stackoverflow!请将html 放在问题本身中,因为链接会过时,并且像我这样的一些人无法访问外部站点。否则,如果您在执行此行之前等待几秒钟,这在调试时是否有效? driver.FindElement(By.XPath("//select[@id='tipo_empresa']"));?
  • 从 HTML 来看,SELECT 可能是隐藏的,它上面的 UL 用作下拉菜单。尝试单击UL,然后单击带有所需文本的LI。另外,当您所做的只是与 ID 交互时,为什么还要使用 XPath?只需使用By.Id()
  • 对不起@mrfreester 我已经把代码放在问题中了。我还没试过这个。我会试试的。
  • @JeffC,问题是我不知道它是否与 ID 一起使用的代码,因为 ID 行位于代码的末尾。但我会尝试使用 ID。
  • 我尝试使用选择 By.Id() 但没有成功。 IWebElement tipoLoja = driver.FindElement(By.Id("tipo_empresa")); SelectElement selectTipoLoja = new SelectElement(tipoLoja); selectTipoLoja.SelectByText("Filial"); 结果是 >OpenQA.Selenium.ElementNotVisibleException :

标签: c# selenium xpath selenium-webdriver css-selectors


【解决方案1】:

我有相同的代码,我试图找到元素 通过 xpath 在 Firefox 中使用 firefug 并且它有效。 样例:

WebElement inputDrop = driver.findElement(By.xpath("/html/body/main/div[2]/div[1]/form/div/div[2]/div[3]/div/div[2]/div/input"));
inputDrop.click();

Thread.sleep(10000);

            WebElement type = driver.findElement(By.xpath("/html/body/main/div[2]/div[1]/form/div/div[2]/div[3]/div/div[2]/div/ul/li[3]/span"));
            type.click();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多