【问题标题】:Is there any best way to identify Uniqueness of web pages in selenium webdriver?有没有最好的方法来识别 selenium webdriver 中网页的唯一性?
【发布时间】:2014-09-09 13:59:12
【问题描述】:

在我的例子中,我有锚标签类型的网络元素。,>。当我点击它们时,它们有时会被破坏,而不是导航到目标网页。..

我正在使用新加载页面的标题。,(单击链接后)来验证它是否已加载。但是,在某些情况下,不止一个链接具有相同的标题。在这种情况下,

我正在使用新加载页面的 URL.. 就足够了吗?

有没有其他最好的方法来处理这种情况

提前致谢!!

【问题讨论】:

  • “网页的独特性”?
  • @audi 如果您询问页面的 URL 是否应该足以唯一地识别页面...嗯,这取决于 您的具体目标意味着什么“唯一性” 。例如,给定 URL 的页面可能包含定期刷新的数据。如果刷新使其成为不同的页面就您而言那么您不能依赖 URL。目前尚不清楚您的目标是什么。

标签: selenium selenium-webdriver webdriver


【解决方案1】:

是的,首先你有两种不同的方法

1) 您可以检查您的 html 并可以使用以下简洁答案进行导航

Selenium how to access two controls of same css class

2) 不,如果您不建议使用 URL 进行测试,请尝试按照 用于测试的页面对象模型。 如下所述

http://www.toolsqa.com/selenium-webdriver/page-object-model/

【讨论】:

    【解决方案2】:

    是的,还有其他方法可以检查两个网页的唯一性,其代码如下所示:

       WebElement oldPageElement = driver.findElement(By.tagName("html"));   
       driver.findElement(By.xpath("linkXpath")).click();
       WebElement newPageElement = driver.findElement(By.tagName("html")); 
       Assert.assertTrue(newPageElement != oldPageElement , "Clicked Link is Ok & it opens a new page"); 
    

    所以基本上上面的代码在点击一个链接后比较了WebElement 的两个对象。如果两个对象不匹配,则意味着单击链接打开了一个新页面。

    【讨论】:

    • 感谢您的所有回复
    • 感谢您的所有回复 唯一性含义:在我的情况下,URL 和标题相同,但页面来源不同,比如今天我有 3 个 > 类型的网络元素。但后来添加了第四个网络元素。现在,每当我尝试执行我的脚本时,我都应该说“你正在尝试在新页面上执行测试”@Louis
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2021-11-25
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多