java - 如何检查网页上元素的存在?

标签 java xpath selenium-webdriver

我有这样的结构,我有x路径/html/body/div/div[2]/p[3]。我如何检查元素的存在:主题总数帖子总数成员(member)总数我们最新的成员(member)

 <p>
           Total posts
      <strong>1</strong>
          • Total topics
      <strong>1</strong>
          • Total members
      <strong>1</strong>
          • Our newest member
      <strong>
        <a class="username-coloured" style="color: #AA0000;" href="./memberlist.php?mode=viewprofile&u=2&sid=b2d8cf0665bc4dda70a20be1c2801659">Admin</a>
      </strong>
     </p>

我尝试这样做:

form.findElement(By.xpath("/html/body/div/div[2]/p[3]")).getAttribute("value").equalsIgnoreCase(
         "Total posts"))

但是这不起作用。我怎样才能正确地做到这一点?

最佳答案

假设你没有其他<strong> DOM 中的元素,你可以试试这个:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

List<String> getTitles(String url)
{
    List<String> titles = new ArrayList<String>();
    WebDriver    driver = new FirefoxDriver();
    driver.get(url);
    List<WebElement> strongs = driver.findElements(By.tagName("strong"));
    for (WebElement strong : strongs)
        titles.add(strong.getText());
    driver.quit();
    return titles;
}

boolean checkTitles(List<String> titles,String suffix)
{
    for (String title : titles)
        if (title.endsWith(suffix))
            return true;
    return false;
}

使用示例:

List<String> titles = getTitles("http://www.google.com");
boolean a = checkTitles(titles,"Total topics");
boolean b = checkTitles(titles,"Total posts");
boolean c = checkTitles(titles,"Total members");
boolean d = checkTitles(titles,"Our newest member");

关于java - 如何检查网页上元素的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987930/

相关文章:

同一台机器上的Java堆空间分配

java - 如何知道 .jar 文件中的哪些类被引用了?

templates - XSLT帮助-各种类似XML,模板用法的XSL

java - 如何使用 selenium webdriver 验证表中的工具提示消息?

Java Selenium 。通过文本查找特定 xpath 的元素

java - 如何报告后台任务的进度?

java - 如何使用Java将以下字符串转换为Json?

perl - 将 XPath 与 Perl 一起使用

xslt - XSLT 2.0:在文档树中将祖先轴限制为某个元素级别

sql-server - Protractor 查询 SQL Server 数据库 (MSSQL)