我有这样的结构,我有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/