使用SelectByText(部分)与C#Selenium WebDriver绑定似乎不起作用

前端之家收集整理的这篇文章主要介绍了使用SelectByText(部分)与C#Selenium WebDriver绑定似乎不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在C#中使用Selenium WebDriver Extensions通过部分文本值从选择列表中选择一个值(实际前面有一个空格).我无法使用部分文本匹配来使其工作.我做错了什么或这是一个错误

可重复的例子:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace AutomatedTests
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            var driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("http://code.google.com/p/selenium/downloads/list");
            var selectList = new SelectElement(driver.FindElement(By.Id("can")));
            selectList.SelectByText("Featured downloads");
            Assert.AreEqual(" Featured downloads",selectList.SelectedOption.Text);
            selectList.SelectByValue("4");
            Assert.AreEqual("Deprecated downloads",selectList.SelectedOption.Text);
            driver.Quit();
        }
    }
}

提供错误
OpenQA.Selenium.NoSuchElementException:找不到包含文本的元素:精选下载

解决方法

SelectByText方法已被破坏,因此我编写了自己的名为SelectBySubText的扩展方法来执行它的目的.
using System.Linq;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;

namespace AutomatedTests.Extensions
{
    public static class WebElementExtensions
    {
        public static void SelectBySubText(this SelectElement me,string subText)
        {
            foreach (var option in me.Options.Where(option => option.Text.Contains(subText)))
            {
                option.Click();
                return;
            }
            me.SelectByText(subText);
        }
    }
原文链接:https://www.f2er.com/c/239450.html

猜你在找的C&C++相关文章