如何使用Selenium Web驱动程序获取具有下一个div值的Label Name?

问题描述 投票:1回答:3

请考虑以下代码段

<div class="contentInput medium wrapText">
<label class="ng-binding">Number1</label>
<div title="10000" class="readOnlyInput clearB wrapText  text-left ng-binding">10000</div>
</div>
<div class="contentInput medium wrapText">
<label class="ng-binding">Number2</label>
<div title="10050" class="readOnlyInput clearB wrapText  text-left ng-binding">10050</div>
</div>
<div class="contentInput medium wrapText">
<label class="ng-binding">Number2</label>
<div class="readOnlyInput clearB wrapText  text-left ng-binding">....</div>
</div>

这是我的问题:

  1. 如何获得下一个div值的标签?例如,我需要将Number1值作为10000,将Number2值作为10050,将Number3值作为BLANK。
  2. 如果我将Label作为输入,那么它的值应该从该标签的下一个div返回? 例如,如果数字1作为输入给出,则应返回10000值
selenium-webdriver
3个回答
1
投票

它应该非常简单如下:

String labelText = driver.findElement(By.xpath("//div[label = 'Number1']/div")).getText();

您可能甚至不需要方法,因为它只是一行。如果你想要div值为其他标签,比如Number2,只需替换该值。

使用xpath的方式使其更简单。


1
投票

请尝试以下代码:

public string getLabelValue(String labelText)
{
   List <WebElement> outerDiv= driver.findElements(By.xpath("//div[@class='contentInput medium wrapText']"));
    for (WebElement div: outerDiv) {
      if(div.findElements(By.tagName("label").getText().equals(labelText))){
            return div.findElements(By.tagName("div").getText();
      }
    }
   return "Label Not Found".
}

0
投票

嗨,请尝试如下

// taking under consideration that we have same number of label 
// tag with its corresponding div tag

// Take label tag and div tag in list 
List<WebElement> myLabels = driver.findElements(By.cssSelector(".ng-binding"));
List<WebElement> myDivs = driver.findElements(By.cssSelector(".readOnlyInput.clearB.wrapText.text-left.ng-binding"));
String UserInputLabelValue = "Number2";
// now size of myLabels = myDivs hence
for(int i=0;i<myLabels.size();i++){
    if(myLabels.get(i).getText().equals(UserInputLabelValue)){
    System.out.println("Div value is against " + UserInputLabelValue + " is : " + myDivs.get(i).getText());
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.