I need to parse a table using Java and Jsoup and change the color of the cell based on it's value. This is what the html table looks like and it is how the color of the cell needs to be defined
<tr>
<td colspan="1">Test1</td>
<td colspan="1">JD</td>
<td colspan="1">N</td>
<td colspan="1">A</td>
</tr>
<tr>
<td>Test2</td>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<tr>
<td class="highlight-#fff0b3" title="Background color : Light yellow 100%" data-highlight-colour="#fff0b3">COLOR YELLOW</td>
<td class="highlight-#fff0b3" title="Background color : Light yellow 100%" data-highlight-colour="#fff0b3">YELL</td>
<td class="highlight-#fff0b3" title="Background color : Light yellow 100%" data-highlight-colour="#fff0b3">N/A</td>
<td class="highlight-#fff0b3" title="Background color : Light yellow 100%" data-highlight-colour="#fff0b3">N/A</td>
</tr>
I wrote a script that can ready the value of a cell and change the text from it, however I am unable to also change the color
Document doc = Jsoup.parse(html);
Elements rows = doc.getElementsByTag("tr");
String status = "Pass"
for(Element row : rows) {
String Column1 = row.getElementsByTag("td").get(0).text();
if(Column1 == "MyValue"){
row.getElementsByTag("td").get(1).text("CustomValue");
row.getElementsByTag("td").get(2).text("CustomValue");
row.getElementsByTag("td").get(3).text("SomeValue");
if(status == "Pass"){ // Everything below doesn't work
row.getElementsByTag("td").get(1).class("highlight-#57d9a3");
row.getElementsByTag("td").get(2).class("highlight-#57d9a3");
row.getElementsByTag("td").get(3).class("highlight-#57d9a3");
row.getElementsByTag("td").get(1).title("Background color : Medium green 65%");
row.getElementsByTag("td").get(2).title("Background color : Medium green 65%");
row.getElementsByTag("td").get(3).title("Background color : Medium green 65%");
} else if(status == "Fail"){
row.getElementsByTag("td").get(1).class("highlight-#ff7452");
row.getElementsByTag("td").get(2).class("highlight-#ff7452");
row.getElementsByTag("td").get(3).class("highlight-#ff7452");
row.getElementsByTag("td").get(1).title("Background color : Medium red 85%");
row.getElementsByTag("td").get(2).title("Background color : Medium red 85%");
row.getElementsByTag("td").get(3).title("Background color : Medium red 85%");
} else{
//TBD
}
}
This is the error I am getting:
No signature of method: org.jsoup.nodes.Element.class() is applicable for argument types: (java.lang.String) values: [highlight-#57d9a3]
10:44:33 Possible solutions: clone(), clone(), addClass(java.lang.String), hasClass(java.lang.String), val(java.lang.String), getClass()