简体   繁体   English

如何从带有硒C#的组合框中选择?

[英]How To select from combobox with selenium c#?

How to change default value dropdown or combobox list to others value? 如何将默认值下拉列表或组合框列表更改为其他值?

i want to change allshow to onlyactive 我想将allshow更改为onlyactive

 <html> <body> <form method="post" action=""> <br> First Name:<input type="text" size="12" maxlength="12" name="Fname"> <br> Last Name:<input type="text" size="12" maxlength="36" name="Lname"> <br> Gender:<br> Male:<input type="radio" value="Male" name="gender"><br> Female:<input type="radio" value="Female" name="gender"><br> Favorite Food:<br> Steak:<input type="checkbox" value="Steak" name="food[]"><br> Pizza:<input type="checkbox" value="Pizza" name="food[]"><br> Chicken:<input type="checkbox" value="Chicken" name="food[]"><br> <div class="uk-width-1-6@m uk-grid-margin"> <div class="uk-margin" data-select2-id="11"> <label class="uk-form-label">Status :</label> <select class="uk-select js-select2 select2-hidden-accessible" name="search[active]" data-select2-id="7" tabindex="-1" aria-hidden="true"> <option value="" data-select2-id="9">AllShow</option> <option value="1" data-select2-id="17">onlyactive</option> <option value="2" data-select2-id="18">onlyinactive</option> </select> <span class="select2 select2-container select2-container--default select2-container--below select2-container--focus" dir="rtl" data-select2-id="8" style="width: 217.325px;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-labelledby="select2-searchactive-21-container"><span class="select2-selection__rendered" id="select2-searchactive-21-container" role="textbox" aria-readonly="true" title="AllShow">AllShow</span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span> </div> </div> </form> </body> </html> 

IWebDriver driver = new FirefoxDriver(service);
IWebElement comboBox = driver.FindElement(By.Name("search[active]"));
comboBox.Click();

use this code: 使用此代码:

    // select the drop down list
    var education = driver.FindElement(By.Name("education"));
    //create select element object 
    var selectElement = new SelectElement(education);

but error 但是错误

The type or namespace name 'SelectElement' could not be found (are you missing a using directive or an assembly reference?) 找不到类型或名称空间名称“ SelectElement”(是否缺少using指令或程序集引用?)

Selenium.WebDriver.3.141.0 Selenium.WebDriver.3.141.0

I believe that you're missing assembly reference, SelectElement class is available at namespace OpenQA.Selenium.Support.UI . 我相信您缺少程序集引用,名称空间OpenQA.Selenium.Support.UI提供了SelectElement类。

Nuget: 的NuGet:

https://www.nuget.org/packages/Selenium.Support/3.141.0 https://www.nuget.org/packages/Selenium.Support/3.141.0

Then it should works. 然后它应该工作。

using OpenQA.Selenium.Support.UI;

var comboBox = driver.FindElement(By.Name("search[active]"));
new SelectElement(comboBox).SelectByText("onlyactive");

EDIT: 编辑:

SelectByText providing the text of the option to be selected. SelectByText提供要选择的选项的文本。 If your combobox doesn't contains specified text value, then it will throw NoSuchElementException . 如果您的组合框不包含指定的文本值,则它将抛出NoSuchElementException

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

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