Find.by~WatiN方法无法随机找到Element(ElementNotFoundException)

时间:2014-08-31 09:47:56

标签: c# watin

Find.by(Class / Selector / Url)WatiN的方法无法随机找到Element(ElementNotFoundException)。

过去两周我试图修复它,但我不知道原因。 起初,我认为问题只是因为Find.Selector不稳定,因此我查找了Find.Sector部件以停用它们,但问题仍然存在。

我创建了C#Windows Form项目,然后按如下方式编写了Thread:

// Frm.cs 
private void RunBtn_Click(object sender, EventArgs e)
{
    workerObject = new Worker();
    workerThread = new Thread(workerObject.DoWork);
    workerThread.SetApartmentState(ApartmentState.STA);
    workerThread.IsBackground = true;

    workerThread.Start();
}


// Worker.cs
[TestFixture, RequiresSTA]
class Worker
{
    [STAThread]
    public void DoWork()
    {
        while( ! _sholdStop)
        {
            // Find Element & Click
        }
    }
}

当我在以下HTML中执行Find.ByClass,Find.BySelector和Find.ByUrl时,他们仍然无法随机找到Element。

<ul class="pagenation ult2">
    <li>
        <a href="http://somedomain.com/post/109301/?param=value&param2=value2">
            Click!
        </a>
    </li>
    <li>
        ...
    </li>
</ul>


// Try 1 :
// browser.Link(Find.ByUrl("http://somedomain.com/post/109301/?param=value&param2=value2")).Click();

// Try 2 :
// browser.Link(Find.BySelector(".ult2 > li > a")).Click();

// Try 3 :
List ul = browser.List(ByClass("pagenation ult2", true));
ul.ListItems[0].ChildWithTag("a", null).Click();

WatiN不稳定还是我缺少什么?

0 个答案:

没有答案