如何在c#硒chromedriver中不选择下拉菜单来选择下拉菜单值?

时间:2019-09-20 03:46:23

标签: c# selenium selenium-chromedriver

我在C#中使用硒chromedriver。我有没有选择标签的下拉菜单。

那么,我该如何选择值?我设法选择下拉列表并单击它。但我不知道如何检索值并选择它。

感谢您的帮助。谢谢。

点击下拉菜单的代码:

 IWebElement dropdown_priority = driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span")); //select priority dropdown   

 dropdown_priority.Click();

HTML元素:

<div class="editor-field">        
<span title="" style="" class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="PriorityId_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="98260767-707a-4bcc-a1b7-b44d4eeccf90">
<span unselectable="on" class="k-dropdown-wrap k-state-default">
<span unselectable="on" class="k-input">- Select -</span><span unselectable="on" class="k-select">
<span unselectable="on" class="k-icon k-i-arrow-s">select</span>
</span>
</span>
<input id="PriorityId" name="PriorityId" type="text" data-role="dropdownlist" style="display: none;" data-bind="value:PriorityId" aria-invalid="true" class="k-invalid">
</span>        
<div class="k-widget k-tooltip k-tooltip-validation k-invalid-msg field-validation-error" style="margin: 0.5em; display: block;" data-for="PriorityId" data-valmsg-for="PriorityId" id="PriorityId_validationMessage" role="alert">
<span class="k-icon k-warning"></span>
The Issue Priority field is required.
<div class="k-callout k-callout-n"></div>
</div>    
</div>

2 个答案:

答案 0 :(得分:0)

首先,您需要在Nuget软件包管理器中获取Selenium.Support软件包

然后您可以使用此方法选择所需的元素

new SelectElement(driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span"))).SelectByIndex(1);
new SelectElement(driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span"))).SelectByText("YourSelection");
new SelectElement(driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span"))).SelectByValue("YourValue");

答案 1 :(得分:0)

我找到了以下解决方案。

我具有带选项的下拉菜单(不指定,低,中,高)。使用以下代码设法选择中值。

    /*Create and initialize object*/
    IWebElement dropdown_priority = driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span//span[contains(@class, 'k-dropdown-wrap')]")); //select priority dropdown  

    dropdown_priority.Click(); // click priority dropdown, the dropdown selection will be displayed

    Thread.Sleep(500);

    /*Create and initialize object*/
    IWebElement optionsLists = driver.FindElement(By.XPath(".//*[@id='PriorityId_listbox']//li[3]")); //select value on index 3
    optionsLists.Click(); //click selected value