2017-07-25 42 views
-1

僅第一個可用的複選框我有複選框的名單,我通過一個如何選擇與webdriver的

List<WebElement> props = driver.findElementsByXPath("//input[@type='checkbox']"); 
     for (WebElement prop : props) 
      if (!prop.isSelected()) { 
       prop.click(); 
      } 

選擇它們之一,但我需要只選擇第一個可用的一個。 我如何實現這個請求?

+0

道具.get(1).click(); –

+0

在for循環的if條件中放一個空格... – Grasshopper

+0

不,您的** Business Req uirement **/**測試用例**不能'只選擇第一個可用的'。它應該是一個特定的「複選框」,需要選擇。在這種情況下,您需要通過定位器'id','name','css'或'xpath'找到想要的複選框,並調用'click()'方法。誘導一個'List'是絕對不必要的。謝謝 – DebanjanB

回答

3

如果你只想選擇第一個複選框,爲什麼你會得到所有的複選框?

以下代碼將爲您提供頁面上的所有複選框。

List<WebElement> props = driver.findElementsByXPath("//input[@type='checkbox']"); 

要獲得第一個複選框,您可以使用下面的代碼。 Xpath的允許您使用下標操作,只是記下該指數從1開始,而不是0

WebElement firstCheckbox = driver.findElement(By.xpath("//input[@type='checkbox'][1]")) 
+0

我需要選擇第一個可用的複選框。第一個可能是例如。已經選擇或變灰等... – Tommet

0

列表道具= driver.findElements(By.xpath(「//輸入[@類型=‘複選框’ ]「));

int size = props.size();

對(INT I = 1;我< =大小;我++){

WebElement元素= driver.findElementsByXPath( 「(//輸入[@類型= '複選框'])[」 + I +「] 「);

如果(!(element.isSelected()){

element.click(); 
i = size+1; 

}

}

0

在我休息解決它和最終效果很好

List<WebElement> props = driver.findElements(By.xpath("//input[@type='checkbox']")); 
    for (WebElement prop : props) 
     if (!prop.isSelected()) { 
      prop.click() 
      break; 
     } 
相關問題