Если вы перейдете на https://parcelinquirytreasurer.cochise.az.gov/, тип 3020702601 в текстовом поле и нажмите «Отправить», вы увидите 514,20 долл. США на (4,6) позиции в таблице. Если вы нажмете на это 514,20 доллара, вы получите новую страницу с новой таблицей. В вас осмотрите любой элемент этой таблицы, вы увидите, что у нее есть ROLE = "treeGrid". Таблица с ROLE = "TreeGrid".package cochise3020702601;
import java.util.*;
import org.htmlunit.*;
import org.htmlunit.html.*;
public class Cochise3020702601 {
public static void main(String[] args) {
try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX)) {
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
HtmlPage page = webClient.getPage("https://parcelinquirytreasurer.cochise.az.gov/");
webClient.waitForBackgroundJavaScriptStartingBefore(10_000);
page = (HtmlPage) page.getEnclosingWindow().getEnclosedPage();
List forms = page.getByXPath("//form[@method='post']");
Iterator formsIterator = forms.iterator();
HtmlForm form = formsIterator.next();
List his = form.getByXPath("//input[@value='Submit']");
Iterator hisIterator = his.iterator();
HtmlInput hi = hisIterator.next();
HtmlTextInput textField = form.getInputByName("parcelNumber_input");
textField.type("3020702601");
HtmlPage page2 = hi.click();
webClient.waitForBackgroundJavaScriptStartingBefore(10_000);
List accountTables = page2.getByXPath("//table[@role='grid']");
Iterator accountTablesIt = accountTables.iterator();
HtmlTable accountTable = (HtmlTable) accountTablesIt.next();
List clickables = accountTable.getCellAt(5,5).getByXPath("//a[@class='gridlink']");
Iterator clicks = clickables.iterator();
HtmlElement he2 = (HtmlElement) clicks.next();
HtmlPage page3 = (HtmlPage) he2.click();
List hts = page3.getByXPath("//a[@role='treegrid']");
System.out.println("hts.size() = " + hts.size());
System.out.println("--------------------------------------------------------");
}
catch (Exception e) {
System.out.println("Exception: " + e.toString());
}
}
}
< /code>
Когда я запускаю вышеуказанную программу, я ожидаю увидеть «hts.size () = ». Вместо этого я вижу hts.size () = 0. Это означает, что мой код Java не находит никакого HTMLTable с роли = "treeGrid". Чувствовать неверно.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... cific-role