如何检查两个页面是否相等?

时间:2019-08-02 00:51:17

标签: c# selenium

我复制了一个共享链接,现在我需要知道他是否真的复制了所有 细节,包括小细节。 如何检查两个页面是否相等?

我试图做类似的事情,它可以工作吗?

driver.Navigate().GoToUrl("my-url");

IWebElement sourcePage = driver.FindElement(By.CssSelector("body"));

driver.FindElement(By.ClassName("share-link")).Click();

driver.Navigate().GoToUrl(Clipboard.GetText());

IWebElement copiedPage = driver.FindElement(By.CssSelector("body")); 

// The test
if (copiedPage.Equals(sourcePage))
{
    // The pages are equal
}
else
{ 
    // Pages not equal
}

1 个答案:

答案 0 :(得分:0)

HTML页面通常只是很长的多行字符串。只需将它们都加载到内存中并进行比较即可。但是请注意,当您不期望使用字符串时,字符串的求值往往不相等,而且字符串越长,错误/意外负值就越有可能成为可能。

您可能希望实际找到不同的行。这将是一个非常不同的问题,但是可以通过将页面变成string[]List<Strings>,然后比较每个元素/行来完成。

如果您经常进行这种比较,则提前计算双方的哈希值可能会有所帮助。仅查看哈希值,就可以快速发现页面是否不同。如果哈希值是相同的,您仍然可以进行字符串比较,因为可能会发生大肠菌病。