【问题标题】:Verify text on web page and then get the location in selenium webdriver using Java验证网页上的文本,然后使用 Java 在 selenium webdriver 中获取位置
【发布时间】:2016-10-07 20:08:07
【问题描述】:

在使用 java 中的 selenium webdriver 验证其存在后,我们是否可以通过任何方式在网页上找到 Text 的位置

用于验证不存在的文本的代码:

driver.get("http://newtours.demoaut.com/");

driver.getPageSource().contains("Mercury Tours!");
if(true)
{
    System.out.println("Test Case Pass");
} 
else    
    System.out.println("Test Case Fail");   

Mercury Tours! 是网页上的文本。现在获取text = true后如何查找位置。

我尝试使用getLocation(),但失败了。

请尽快告诉我解决方案。

【问题讨论】:

  • 首先,您的代码将始终以if 结尾,因为您没有检查验证结果。工作代码至少应为:<...> if(driver.getPageSource().contains("Mercury Tours!"))。其次,“位置”是什么意思:坐标(这是 getLocation() 返回的内容)、dom 中的位置(例如 xpath)或文本页面中的位置(例如 Java 的 indexOf 返回的内容)?
  • 您在搜索div/span/等吗?包含该文本?这就是“找到位置”的意思吗?如果不是,你是什么意思?此外,如上所述,您需要将 .contains() 分配给布尔值,以便正确检查您的 if。请在提问时更加具体,以便我们知道您在寻找什么。

标签: java selenium webdriver


【解决方案1】:

由于 DOM 结构的复杂性和元素上缺乏唯一属性,我认为您应该只使用 xpath 来查找带有文本的元素。不幸的是,这是我目前看到的唯一选择,除非其他人有更好的建议。要求前端开发人员提供独特的属性,以便您可以轻松找到元素,而不是依赖元素的文本。

driver.get("http://newtours.demoaut.com/");
WebElement element = driver.findElement(By.xpath(".//font[contains(text(),'Mercury Tours')]"));
if(element.isDisplayed()) {
   System.out.println("Test Case Pass");
} else    
    System.out.println("Test Case Fail");   
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多