如何找到单个Div标签下的不同元素

时间:2016-05-23 07:38:21

标签: selenium-webdriver webdriver

请查看以下示例代码。

<html>
<body
<div id="HOTELS">
<div class="sub-classes">
<label class="control-label go-right">Location</label>
</div>
<div class="sub-classes">
<span class="size13 go-right">
<b>Adults</b>
</span>
</div>
</div>
<body>
<html>`

---------网络驱动程序代码--------------------

WebDriver wdriver = new FirefoxDriver();
List<WebElement>elements=wdriver.findElements(By.cssSelector("div[class='sub-classes'] label"));
for(WebElement located_element : elements)
{
system.out.println(located_element.getText());
}

我正在尝试找到Label标签和span标签,但除了为两个元素分别定义特定位置xpath之外没有找到任何方法。我想用cssSelector做到这一点。

2 个答案:

答案 0 :(得分:0)

尝试以下逻辑。

  1. 获取所有必需类别的元素
  2. 迭代每个元素以获取内部标记/文本。
  3. List<WebElement>elements=driver.findElements(By.cssSelector("div[class='sub-classes']"));
    for(WebElement located_element : elements){
       System.out.println(located_element.getText());
       System.out.println(located_element.findElement(By.xpath("./*")).getTagName());
    }

    上述代码的输出将是

    Location
    label
    Adults
    span
    

答案 1 :(得分:0)

试试这个选择器......

List<WebElement>elements=driver.findElements(
    By.cssSelector(
        "div[class='sub-classes']>label, div[class='sub-classes']>span"
));

这将选择所有标签和范围,<div class="sub-classes">作为其直接父级。
如果label / span不在此div的正下方,则将>替换为(空格)

List<WebElement>elements=driver.findElements(
    By.cssSelector(
        "div[class='sub-classes'] label, div[class='sub-classes'] span"
));