【问题标题】:Select option set values in Selenium Webdriver在 Selenium Webdriver 中选择选项集值
【发布时间】:2017-11-24 07:39:56
【问题描述】:

我正在尝试使用 c# selenium 自动化下拉字段值。我使用以下代码 sn-p 来选择下拉值以及选项。

Code

但我无法单击该选项。如果我尝试为所选选项编写单击功能,则会出错。

无法点击选项元素。执行 javascript 函数返回意外错误,但 IE 无法返回错误 javascript 引擎。 .

请参阅以下屏幕截图以获取错误参考。

Error reference

如何使用 selenium c# 更改下拉列表中的值?

【问题讨论】:

    标签: c# selenium selenium-webdriver


    【解决方案1】:

    我不熟悉 C#,但这就是你在 java 中的做法。我相信语法是相似的,所以也许有人可以翻译它或其他什么?

    List<WebElement> dropdown = driver.findElements(By.cssSelector("Your css/xpath/whatever here");
    
    for (int i =0;i<dropdown.size();i++){
    WebElement ele = dropdown.get(i);
    String textOfElementYouWantToClick = ele.getText();
         if(textOfElementYouWantToClick.contains("Value you are looking for")){
             ele.click();
             System.out.println("Selecting the value you chose");
         }
    }
    

    【讨论】:

    • 我可以使用我的代码从下拉列表中选择选项。但我的问题是我无法单击并选择特定选项。
    【解决方案2】:

    尝试使用 SelectElement 类。它有处理下拉字段的方法。

    https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_UI_SelectElement.htm

    【讨论】:

    • 我已经试过了。但我无法在 selectelement 中获取选项值。
    • 可以获取select元素中所有选项的选项值。 SelectElement.Options.Select(o =&gt; o.GetAttribute("value"));
    • 更具体地说,您正在寻找选项值为 0 的元素。然后您可以selectElement.SelectByValue("0");
    【解决方案3】:

    您是否尝试过不使用 javascript 来单击选定的选项? 有Select selenium 类来处理下拉菜单:

     Select myDropdown = new Select(dropdownWebElement);
     myDropdown.selectByVisibleText('Value to select');
    

    另一个原因可能是下拉菜单是使用某些框架呈现的,该框架使实际的 Select 隐藏,而您在屏幕上看到的实际上是来自 DOM 中非常不同元素的项目。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多