2016-08-27 8 views
2

スクリプト:テキストセレンを取得することができません

List<WebElement> addCheck=driver.findElements(By.name("ticketLess")); 
for(WebElement checkbox : addCheck){ 
    System.out.println(checkbox.getAttribute("Text")); 
} 

HTML:

<input type="checkbox" name="ticketLess" value="checkbox"> 
<font face="Arial, Helvetica, sans-serif" size="2"> 
     Same as Billing Address&nbsp;</font> 

私が取得しようとしていますテキストがSame as Billing Addressです。私もgetText()を使ってみましたが、何も返されませんでした。

答えて

1

実際に間違った要素の属性名がテキストを取得するのに間違っています。 input要素に内部テキストが含まれていません。

List<WebElement> addCheck = driver.findElements(By.cssSelector("input[name = 'ticketLess'] + font")); 
for(WebElement checkbox : addCheck){ 
    System.out.println(checkbox.getText()); 
} 

: - - :同じで複数のチェックボックスがある場合は、テキストはfont要素内に存在するためfont要素を見つけて、以下のように、このテキストを取得する.getText()を使用する必要が

これらのチェックボックスフォントのすべてのテキストを取得したい場合は、上記のコードを使用する必要があります。そうでない場合は、次のようにfindElementを代わりに使用してこの単一のチェックボックスフォントのみを取得できます。 -

WebElement checkbox = driver.findElement(By.cssSelector("input[name = 'ticketLess'] + font")); 
System.out.println(checkbox.getText()); 
+1

ありがとうございました。このアクションを実行できるcssSelectorとxpath以外の方法がありますか? – Combospirit

+0

はい、 'xpath'ロケータでも同じことができますが、xpathを' .//input[@name = 'ticketLess']/following :: font'として使うことができます。これらのロケータの他に、この場合はロケータを見つけることができません。 –

1
List<WebElement> addCheck = driver.findElements(By.xpath(".//input[@name='ticketLess']/following-sibling::font")); 
for(WebElement checkbox : addCheck){ 
    System.out.println(checkbox.getText()); 
} 

上記使用セレクタはそれが<font>であり、入力の次の兄弟を選択します。フォント要素を取得して、必要なテキストを取得する必要があります。

関連する問題