.net 查找没有类的所有链接*

.net 查找没有类的所有链接*,.net,watin,.net,Watin,我有一个页面,可以有多达20-30个链接。根据其他因素,其中一些链接可能有一个类 我想从那些没有类的链接中随机选择一个链接 使用watin有什么方法可以做到这一点吗?使用.Filter()它似乎不喜欢尝试筛选到没有特定值的项目。。。。。所以我想出了下面的怪物;它不是很优雅,但它在我的测试页面上工作,并且应该在几乎所有的时间都能工作,因为只有少量的链接,并且这些链接中有相当一部分没有类 因为它可能找不到没有类/空白类的链接,如果是这样,它将显式抛出异常。实现一个已经尝试过链接的存储不会太困难,并且

我有一个页面,可以有多达20-30个链接。根据其他因素,其中一些链接可能有一个类

我想从那些没有类的链接中随机选择一个链接

使用watin有什么方法可以做到这一点吗?

使用
.Filter()
它似乎不喜欢尝试筛选到没有特定值的项目。。。。。所以我想出了下面的怪物;它不是很优雅,但它在我的测试页面上工作,并且应该在几乎所有的时间都能工作,因为只有少量的链接,并且这些链接中有相当一部分没有类

因为它可能找不到没有类/空白类的链接,如果是这样,它将显式抛出异常。实现一个已经尝试过链接的存储不会太困难,并且只有在没有任何未定义类的链接时才会抛出异常。下面的方法实施起来更快,而且可能“足够好”

var browser=ie.Page()//这里显然匿名。
int numberOfLinks=browser.Document.Links.Count;
随机=新随机();
int randomNum=random.Next(0,numberOfLinks);
int计数器=0;
int maxTimesToTry=1000;
对于(int i=0;i
在WatiN 2.1、IE9、Win7、NUnit 2.5上测试,使用
.Filter()
似乎不喜欢尝试筛选到没有特定值的项。。。。。所以我想出了下面的怪物;它不是很优雅,但它在我的测试页面上工作,并且应该在几乎所有的时间都能工作,因为只有少量的链接,并且这些链接中有相当一部分没有类

因为它可能找不到没有类/空白类的链接,如果是这样,它将显式抛出异常。实现一个已经尝试过链接的存储不会太困难,并且只有在没有任何未定义类的链接时才会抛出异常。下面的方法实施起来更快,而且可能“足够好”

var browser=ie.Page()//这里显然匿名。
int numberOfLinks=browser.Document.Links.Count;
随机=新随机();
int randomNum=random.Next(0,numberOfLinks);
int计数器=0;
int maxTimesToTry=1000;
对于(int i=0;i
在WatiN 2.1、IE9、Win7和NUnit 2.5上测试

var browser = ie.Page<MyPageClass>();  //obviously anonymized here.
int numberOfLinks = browser.Document.Links.Count;
Random random = new Random();
int randomNum = random.Next(0, numberOfLinks);
int counter = 0;
int maxTimesToTry = 1000;

for (int i = 0; i < maxTimesToTry; i++)
{
    if (string.IsNullOrEmpty(browser.Document.Links[randomNum].ClassName))
    {
        Console.WriteLine("url: " + browser.Document.Links[randomNum].Url);
        break;                    
    }
    else
    {
        randomNum = random.Next(0, numberOfLinks);
    }
    counter++;
}

if (counter == maxTimesToTry)
{
    throw new Exception(string.Format("Unable to find a link without a class in {0} tries", maxTimesToTry));
}