尝试获取WatiN用于链接/浏览器

4

我最近开始测试和使用WatiN,并遇到了一些问题/错误,我无法真正解决。

首先,我将描述我在测试中所做的事情... 我会获取特定div中的所有链接列表...因此我有一个链接列表...我将通过循环来遍历它们... 在循环中,我将使用link.clicknowait()函数打开该链接(它会在新的ie标签中打开)...然后我会让线程睡眠几秒钟,然后通过将该链接(url)附加到新浏览器上并关闭该浏览器来关闭它,因为我总是使用'using(..)'语句。

因此,第一个问题是当浏览器获取所有链接并开始单击它们中的一个时,可能会导致其中一个链接不是正确的页面,这意味着它可能会导致一个页面说页面不存在了,所以之后我就无法关闭那个页面了...如何解决这个问题并攻击ie,使其不再存在? 它没有固定的url...你能推荐任何东西吗?

是否有一种类似于“尝试连接到...”的方法?否则,如果它试图将浏览器连接到不存在的链接,则会出现错误。

还有没有办法检查链接列表中的链接是否仍然正确,因为有时也会出现无法单击该链接的异常,因为页面中为空... 或者我可以检查类似于link.trytoclick()的东西,如果出现错误,就忽略该链接并继续前进吗?

最后一个问题是,在单击了大量链接并打开和关闭浏览器后,我得到了一个outofmemoryexception的错误...怎么会这样,我已经使用了'using语句',它总是在用完后关闭浏览器...

提前感谢您的帮助。

1个回答

1

你可以使用 href 在 watin 会话的同一窗口中打开链接,在验证链接后,可以返回到原始页面。

类似于这样的东西:

string href = browser.Link("link_id").GetAttributeValue("href"); //or your link from the collection
browser.GoTo(href);
//Perform you check
browser.Back();

使用以下代码检查链接是否存在:

  session.browser.Back();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接