如何使用Selenium C#验证一页上的文本,然后验证另一页上的文本是否相同?

时间:2019-05-29 17:58:24

标签: c# selenium

例如:登录一个包含文本(用户未知)的网页,然后验证其在另一页面上是否具有相同文本。

1 个答案:

答案 0 :(得分:0)

您可以选择类似的东西

  1. 使用HTML Body定位第一页的XPath对象,例如:

    driver.FindElement(By.XPath("//body"))
    
  2. 获取HTML正文的innerText property
  3. 使用line separator字符将其拆分为单独的字符串
  4. 对第二页执行步骤1-3
  5. 迭代从第一页提取的字符串,然后在第二页的字符串中查找匹配项
  6. 根据结果做您需要的事

示例代码:

driver.Url = "https://stackoverflow.com";

string firstPageText = driver.FindElement(By.XPath("//body")).GetAttribute("innerText");
HashSet<string> firstPageLines = new HashSet<string>(firstPageText.Split('\n'));

driver.Url = "https://stackoverflow.com/questions/56366177/how-do-i-verify-text-on-one-page-then-validate-it-is-that-same-text-on-another-p";

string secondPageText = driver.FindElement(By.XPath("//body")).GetAttribute("innerText");
HashSet<string> secondPageLines = new HashSet<string>(secondPageText.Split('\n'));

foreach (string line in firstPageLines) {
    if (secondPageLines.Contains(line)) {
        Console.WriteLine("This line is present in both pages: " + line);
    }
}

示例输出:

enter image description here