2015-11-26 100 views
1

我使用硒webdriver來運行腳本。如何抓取selenium webdriver中對應於複選框的文本?

我有一個場景,我想抓取對應於複選框的文本。

對於單個複選框,我使用getAttribute()來捕獲下面的代碼中給出的文本,它工作正常。

String referenceIn3DPage=Driver.driver.findElement(By.xpath("//div[3][@class='some-class']//input")).getAttribute("id"); 

findElements()的情況下getAttribute無效嗎?

如何捕獲多個複選框的文本?

截圖複選框: enter image description here

HTML截圖:

enter image description here

正如你在截圖中看到我想要的屬性 - ID捕捉到我的文字。

回答

0

你可以試試:.getAttribute("value");

1

請使用參數來獲取複選框的文字:

String referenceIn3DPage=Driver.driver.findElement(By.xpath("//div[3][@class='some-class']//input")).getAttribute("value"); 

輸出: OSCP120 [如果定XPath是第一個複選框]

+0

我想要所有複選框對應的文本列表,而不是特定的複選框。 我想要像OSCP120,PCFD030等的價值。 – todayILearned

+1

然後,您將重複使用列表而不是單個字符串。 –

+0

請您詳細說明一下嗎? – todayILearned

1

只需從你的另一個question並修改它的代碼。

String referenceIn3DPage =null; 
int count=Driver.driver.findElements(By.xpath("//div[3][@class='viewer3d-demo-commercial-references-checkboxes']//input")).size(); 
System.out.println("the count="+count); 

for(int i=1;i<=count;i++) 
{ 
    referenceIn3DPage=Driver.driver.findElement(By.xpath("//div[3][@class='viewer3d-demo-commercial-references-checkboxes']/div["+i+"]/label/input")).getAttribute("id"); 
    System.out.println("the value in 3d= "+referenceIn3DPage); 
} 

請運行上面的代碼,讓我知道它是否會給您預期的結果。

+0

非常感謝@Manu。代碼工作正常。我在評估xpath時犯了錯誤。 – todayILearned

+0

歡迎!是的,你做得很好,只是一個錯字:) – Manu

相關問題